|
25 | 25 | import { expect } from "chai"; |
26 | 26 | import "mocha"; |
27 | 27 |
|
28 | | -import { GetAssignmentsRequest, GetAssignmentRequest, GetResourceAssignmentsRequest, PostAssignmentRequest, GetTaskRequest, PutAssignmentRequest, CalculationMode, DeleteAssignmentRequest } from "../src/model/model"; |
| 28 | +import { GetAssignmentsRequest, GetAssignmentRequest, GetResourceAssignmentsRequest, PostAssignmentRequest, GetTaskRequest, PutAssignmentRequest, CalculationMode, DeleteAssignmentRequest, WorkContourType, TimephasedData, TimeUnitType, TimephasedDataType, AssignmentBaseline, BaselineType, ResourceAssignment } from "../src/model/model"; |
29 | 29 | import * as BaseTest from "./baseTest"; |
30 | 30 |
|
31 | 31 | describe("getAssignments function", () => { |
@@ -235,6 +235,89 @@ describe("putAssignment function", () => { |
235 | 235 | expect(result3.response.statusCode).to.equal(200); |
236 | 236 | expect(result3.body.assignments.assignmentItem.some(a => a.taskUid === 34 && a.resourceUid === 1)).is.false; |
237 | 237 | expect(result3.body.assignments.assignmentItem.some(a => a.taskUid === 0 && a.resourceUid === 1 && a.uid == 63)).is.true; |
| 238 | + }); |
| 239 | + it("should modify TimephasedData and Baselines with assignment", async () => { |
| 240 | + |
| 241 | + const tasksApi = BaseTest.initializeTasksApi(); |
| 242 | + const fileName = "sample.mpp"; |
| 243 | + const localPath = BaseTest.localBaseTestDataFolder + fileName; |
| 244 | + const remotePath = BaseTest.remoteBaseTestDataFolder; |
| 245 | + const remoteFullPath = remotePath + "/" + fileName; |
| 246 | + |
| 247 | + await tasksApi.uploadFileToStorage(remoteFullPath, localPath); |
| 248 | + |
| 249 | + const request1 = new GetAssignmentRequest(); |
| 250 | + request1.assignmentUid = 1; |
| 251 | + request1.name = fileName; |
| 252 | + request1.folder = remotePath; |
| 253 | + |
| 254 | + const result1 = await tasksApi.getAssignment(request1); |
| 255 | + |
| 256 | + expect(result1.response.statusCode).to.equal(200); |
| 257 | + expect(result1.body.assignment).not.undefined.and.not.null; |
| 258 | + |
| 259 | + const modifiedAssignment = new ResourceAssignment(); |
| 260 | + Object.assign(modifiedAssignment, result1.body.assignment); |
| 261 | + modifiedAssignment.cost = 100; |
| 262 | + modifiedAssignment.start = new Date(2001, 9, 10); |
| 263 | + modifiedAssignment.finish = new Date(2002, 9, 10); |
| 264 | + modifiedAssignment.baselines = [ |
| 265 | + new AssignmentBaseline({ |
| 266 | + baselineNumber: BaselineType.Baseline1, |
| 267 | + start: new Date(2002, 9, 10) |
| 268 | + }) |
| 269 | + ] |
| 270 | + modifiedAssignment.actualWork = "10:10:10"; |
| 271 | + modifiedAssignment.actualCost = 100; |
| 272 | + modifiedAssignment.actualStart = new Date(2001, 9, 10); |
| 273 | + modifiedAssignment.actualFinish = new Date(2002, 9, 10); |
| 274 | + modifiedAssignment.actualOvertimeWork = "100:10:10"; |
| 275 | + modifiedAssignment.work = "80:0:0"; |
| 276 | + modifiedAssignment.uid = 1; |
| 277 | + modifiedAssignment.vac = 10; |
| 278 | + modifiedAssignment.workContour = WorkContourType.Contoured; |
| 279 | + modifiedAssignment.timephasedData = [ |
| 280 | + new TimephasedData({ |
| 281 | + uid: modifiedAssignment.uid, |
| 282 | + start: new Date(2001, 9, 10, 9, 0, 0, 0), |
| 283 | + finish: new Date(2001, 9, 10, 14, 0, 0, 0), |
| 284 | + unit: TimeUnitType.Hour, |
| 285 | + value: "4:0:0", |
| 286 | + timephasedDataType: TimephasedDataType.AssignmentRemainingWork |
| 287 | + }) |
| 288 | + ]; |
| 289 | + |
| 290 | + const request2 = new PutAssignmentRequest(); |
| 291 | + request2.mode = CalculationMode.None; |
| 292 | + request2.recalculate = false; |
| 293 | + request2.assignmentUid = modifiedAssignment.uid; |
| 294 | + request2.assignment = modifiedAssignment; |
| 295 | + request2.name = fileName; |
| 296 | + request2.folder = remotePath; |
| 297 | + |
| 298 | + const result2 = await tasksApi.putAssignment(request2); |
| 299 | + |
| 300 | + expect(result2.response.statusCode).to.equal(200); |
| 301 | + expect(result2.body.assignment).not.undefined.and.not.null; |
| 302 | + expect(result2.body.assignment.uid).to.equal(modifiedAssignment.uid); |
| 303 | + expect(result2.body.assignment.vac).to.equal(modifiedAssignment.vac); |
| 304 | + expect(result2.body.assignment.cost).to.equal(modifiedAssignment.cost); |
| 305 | + expect(result2.body.assignment.start).to.eql(modifiedAssignment.start); |
| 306 | + expect(result2.body.assignment.finish).to.eql(modifiedAssignment.finish); |
| 307 | + expect(result2.body.assignment.work).to.equal("80.00:00:00"); |
| 308 | + expect(result2.body.assignment.actualWork).to.equal(modifiedAssignment.actualWork); |
| 309 | + expect(result2.body.assignment.actualStart).to.eql(modifiedAssignment.actualStart); |
| 310 | + expect(result2.body.assignment.actualFinish).to.eql(modifiedAssignment.actualFinish); |
| 311 | + expect(result2.body.assignment.actualOvertimeWork).to.equal("100.10:10:00"); |
| 312 | + expect(result2.body.assignment.baselines.length).to.equal(1); |
| 313 | + expect(result2.body.assignment.baselines[0].baselineNumber).to.equal(BaselineType.Baseline1); |
| 314 | + expect(result2.body.assignment.baselines[0].start).to.eql(modifiedAssignment.baselines[0].start); |
| 315 | + expect(result2.body.assignment.timephasedData.length).to.equal(1); |
| 316 | + expect(result2.body.assignment.timephasedData[0].uid).to.equal(modifiedAssignment.uid); |
| 317 | + expect(result2.body.assignment.timephasedData[0].value).to.equal("PT4H0M0S"); |
| 318 | + expect(result2.body.assignment.timephasedData[0].start).to.eql(modifiedAssignment.timephasedData[0].start); |
| 319 | + expect(result2.body.assignment.timephasedData[0].finish).to.eql(modifiedAssignment.timephasedData[0].finish); |
| 320 | + expect(result2.body.assignment.timephasedData[0].timephasedDataType).to.equal(modifiedAssignment.timephasedData[0].timephasedDataType); |
238 | 321 | }); |
239 | 322 | }); |
240 | 323 |
|
|
0 commit comments