UNPKG

4.23 kBJavaScriptView Raw
1// Jasmine test related to the vmauthor virtual machine. The vmauthor
2// virtual machine hosts a full constellation of CodeGradX servers.
3// The vmauthor virtual machine is available from
4// http://paracamplus.com/CodeGradX/VM/latest/
5
6var CodeGradX = require('codegradxlib');
7var Agent = require('../codegradxagent.js');
8var vmauthor = require('./vmauthor-data.js');
9var vmauthData = require('./vmauth-data.json');
10
11describe("CodeGradXagent process Job", function () {
12
13 function initializer (agent) {
14 // User VMauthor's servers:
15 agent.state = new CodeGradX.State(vmauthor.initialize);
16 return agent;
17 }
18
19 it("should be loaded", function () {
20 expect(Agent).toBeDefined();
21 var agent = new CodeGradX.Agent(initializer);
22 expect(agent).toBeDefined();
23 });
24
25 function make_faildone (done) {
26 return function faildone (reason) {
27 //agent.state.debug(reason).show();
28 //console.log(reason);
29 fail(reason);
30 done();
31 };
32 }
33
34 var exerciseTGZFile1 = "spec/org.example.fw4ex.grading.check.tgz";
35 var exercise1;
36
37 it("should submit an exercise", function (done) {
38 var agent = CodeGradX.getCurrentAgent();
39 expect(agent).toBeDefined();
40 var faildone = make_faildone(done);
41 agent.process([
42 "-v",
43 "--user", vmauthData.login,
44 "--password", vmauthData.password,
45 "--type", 'exercise',
46 "--stuff", exerciseTGZFile1,
47 "--timeout", 10,
48 "--follow"
49 ]).then(function (exercise) {
50 expect(exercise).toBeDefined();
51 expect(exercise.pseudojobs).toBeDefined();
52 expect(exercise.pseudojobs.perfect).toBeDefined();
53 expect(exercise.pseudojobs.perfect.mark).toBe(100);
54 exercise1 = exercise;
55 done();
56 }, faildone);
57 }, 400*1000); // 400 seconds
58
59 it("send a job against this new exercise", function (done) {
60 var agent = CodeGradX.getCurrentAgent();
61 expect(agent).toBeDefined();
62 var faildone = make_faildone(done);
63 expect(exercise1).toBeDefined();
64 agent.process([
65 "--Verbose",
66 "--user", vmauthData.login,
67 "--password", vmauthData.password,
68 "--exercise", exercise1.safecookie,
69 "--counter", 100,
70 "--type", 'job',
71 "--stuff", 'spec/oefgc/1.tgz'
72 ]).then(function (job) {
73 expect(job).toBeDefined();
74 expect(job.mark).toBe(10);
75 done();
76 }, faildone);
77 }, 100*1000); // 100 seconds
78
79 it("send a job against this new exercise specified with file:",
80 function (done) {
81 var agent = CodeGradX.getCurrentAgent();
82 expect(agent).toBeDefined();
83 var faildone = make_faildone(done);
84 agent.process([
85 "--Verbose",
86 "--user", vmauthData.login,
87 "--password", vmauthData.password,
88 "--exercise", 'file:2-exerciseAuthorReport.xml',
89 "--counter", 200,
90 "--offset", 7,
91 "--type", 'job',
92 "--stuff", 'spec/oefgc/1.tgz'
93 ]).then(function (job) {
94 expect(job).toBeDefined();
95 expect(job.mark).toBe(10);
96 done();
97 }, faildone);
98 }, 100*1000); // 100 seconds
99
100 // it("send a job against this new exercise specified with campaign:",
101 // function (done) {
102 // var agent = CodeGradX.getCurrentAgent();
103 // expect(agent).toBeDefined();
104 // var faildone = make_faildone(done);
105 // agent.process([
106 // "--Verbose",
107 // "--user", vmauthData.login,
108 // "--password", vmauthData.password,
109 // "--exercise", 'campaign:example#2',
110 // "--counter", 300,
111 // "--offset", 7,
112 // "--type", 'job',
113 // "--stuff", 'spec/min.c'
114 // ]).then(function (job) {
115 // expect(job).toBeDefined();
116 // expect(job.mark).toBe(1);
117 // done();
118 // }, faildone);
119 // }, 100*1000); // 100 seconds
120
121});