UNPKG

@asposecloud/aspose-tasks-cloud

Version:
293 lines (289 loc) 17.5 kB
"use strict"; /* * MIT License * Copyright (c) 2019 Aspose Pty Ltd * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); require("mocha"); const model_1 = require("../src/model/model"); const BaseTest = require("./baseTest"); describe("getAssignments function", () => { it("should return response with code 200 and correct data", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "NewProductDev.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request = new model_1.GetAssignmentsRequest(); request.name = fileName; request.folder = remotePath; const result = yield tasksApi.getAssignments(request); chai_1.expect(result.response.statusCode).to.equal(200); chai_1.expect(result.body.assignments).not.undefined.and.not.null; chai_1.expect(result.body.assignments.assignmentItem.length).to.equal(6); chai_1.expect(result.body.assignments.assignmentItem[0].taskUid).to.equal(34); chai_1.expect(result.body.assignments.assignmentItem[0].uid).to.equal(63); chai_1.expect(result.body.assignments.assignmentItem[0].link.href).to.equal("/63"); })); }); describe("getAssignment function", () => { it("should return response with code 200 and correct data", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "NewProductDev.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request = new model_1.GetAssignmentRequest(); request.assignmentUid = 63; request.name = fileName; request.folder = remotePath; const result = yield tasksApi.getAssignment(request); chai_1.expect(result.response.statusCode).to.equal(200); chai_1.expect(result.body.assignment).not.undefined.and.not.null; chai_1.expect(result.body.assignment.regularWork).to.equal("08:00:00"); chai_1.expect(result.body.assignment.remainingWork).to.equal("08:00:00"); chai_1.expect(result.body.assignment.start).to.eql(new Date(2012, 6, 9, 8, 0, 0)); })); }); describe("getResourceAssignments function", () => { it("should return response with code 200 and correct data", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "NewProductDev.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request = new model_1.GetResourceAssignmentsRequest(); request.resourceUid = 1; request.name = fileName; request.folder = remotePath; const result = yield tasksApi.getResourceAssignments(request); chai_1.expect(result.response.statusCode).to.equal(200); chai_1.expect(result.body.assignments).not.undefined.and.not.null; chai_1.expect(result.body.assignments.list.length).to.equal(6); chai_1.expect(result.body.assignments.list.every(a => a.resourceUid === 1)).is.true; })); }); describe("postAssignment function", () => { it("should return response with code 200 and correct data", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "NewProductDev.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request1 = new model_1.PostAssignmentRequest(); request1.resourceUid = 1; request1.units = 0.5; request1.taskUid = 0; request1.name = fileName; request1.folder = remotePath; const result1 = yield tasksApi.postAssignment(request1); chai_1.expect(result1.response.statusCode).to.equal(200); chai_1.expect(result1.body.assignmentItem).not.undefined.and.not.null; const assignmentUid = result1.body.assignmentItem.uid; const request2 = new model_1.GetAssignmentRequest(); request2.assignmentUid = assignmentUid; request2.name = fileName; request2.folder = remotePath; const result2 = yield tasksApi.getAssignment(request2); chai_1.expect(result2.response.statusCode).to.equal(200); chai_1.expect(result2.body.assignment).not.undefined.and.not.null; chai_1.expect(result2.body.assignment.taskUid).to.equal(0); chai_1.expect(result2.body.assignment.resourceUid).to.equal(1); const request3 = new model_1.GetTaskRequest(); request3.taskUid = 0; request3.name = fileName; request3.folder = remotePath; const result3 = yield tasksApi.getTask(request3); chai_1.expect(result3.response.statusCode).to.equal(200); chai_1.expect(result3.body.task.start).to.eql(result2.body.assignment.start); chai_1.expect(result3.body.task.finish).to.eql(result2.body.assignment.finish); chai_1.expect(result3.body.task.work).to.equal(result2.body.assignment.work); chai_1.expect(result3.body.task.cost).to.equal(result2.body.assignment.cost); })); it("should return correct data when using assignment cost instead of units", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "Cost_Res.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request1 = new model_1.PostAssignmentRequest(); request1.resourceUid = 1; request1.cost = 2; request1.taskUid = 0; request1.name = fileName; request1.folder = remotePath; const result1 = yield tasksApi.postAssignment(request1); chai_1.expect(result1.response.statusCode).to.equal(200); chai_1.expect(result1.body.assignmentItem).not.undefined.and.not.null; const assignmentUid = result1.body.assignmentItem.uid; const request2 = new model_1.GetAssignmentRequest(); request2.assignmentUid = assignmentUid; request2.name = fileName; request2.folder = remotePath; const result2 = yield tasksApi.getAssignment(request2); chai_1.expect(result2.response.statusCode).to.equal(200); chai_1.expect(result2.body.assignment.cost).to.equal(request1.cost); })); }); describe("putAssignment function", () => { it("should return response with code 200 and correct data", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "NewProductDev.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request1 = new model_1.GetAssignmentRequest(); request1.assignmentUid = 63; request1.name = fileName; request1.folder = remotePath; const result1 = yield tasksApi.getAssignment(request1); chai_1.expect(result1.response.statusCode).to.equal(200); chai_1.expect(result1.body.assignment).not.undefined.and.not.null; result1.body.assignment.taskUid = 0; const request2 = new model_1.PutAssignmentRequest(); request2.mode = model_1.CalculationMode.Automatic; request2.recalculate = true; request2.assignmentUid = 63; request2.assignment = result1.body.assignment; request2.name = fileName; request2.folder = remotePath; const result2 = yield tasksApi.putAssignment(request2); chai_1.expect(result2.response.statusCode).to.equal(200); const request3 = new model_1.GetAssignmentsRequest(); request3.name = fileName; request3.folder = remotePath; const result3 = yield tasksApi.getAssignments(request3); chai_1.expect(result3.response.statusCode).to.equal(200); chai_1.expect(result3.body.assignments.assignmentItem.some(a => a.taskUid === 34 && a.resourceUid === 1)).is.false; chai_1.expect(result3.body.assignments.assignmentItem.some(a => a.taskUid === 0 && a.resourceUid === 1 && a.uid == 63)).is.true; })); it("should modify TimephasedData and Baselines with assignment", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "sample.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request1 = new model_1.GetAssignmentRequest(); request1.assignmentUid = 1; request1.name = fileName; request1.folder = remotePath; const result1 = yield tasksApi.getAssignment(request1); chai_1.expect(result1.response.statusCode).to.equal(200); chai_1.expect(result1.body.assignment).not.undefined.and.not.null; const modifiedAssignment = new model_1.ResourceAssignment(); Object.assign(modifiedAssignment, result1.body.assignment); modifiedAssignment.cost = 100; modifiedAssignment.start = new Date(2001, 9, 10); modifiedAssignment.finish = new Date(2002, 9, 10); modifiedAssignment.baselines = [ new model_1.AssignmentBaseline({ baselineNumber: model_1.BaselineType.Baseline1, start: new Date(2002, 9, 10) }) ]; modifiedAssignment.actualWork = "10:10:10"; modifiedAssignment.actualCost = 100; modifiedAssignment.actualStart = new Date(2001, 9, 10); modifiedAssignment.actualFinish = new Date(2002, 9, 10); modifiedAssignment.actualOvertimeWork = "100:10:10"; modifiedAssignment.work = "80:0:0"; modifiedAssignment.uid = 1; modifiedAssignment.vac = 10; modifiedAssignment.workContour = model_1.WorkContourType.Contoured; modifiedAssignment.timephasedData = [ new model_1.TimephasedData({ uid: modifiedAssignment.uid, start: new Date(2001, 9, 10, 9, 0, 0, 0), finish: new Date(2001, 9, 10, 14, 0, 0, 0), unit: model_1.TimeUnitType.Hour, value: "4:0:0", timephasedDataType: model_1.TimephasedDataType.AssignmentRemainingWork }) ]; const request2 = new model_1.PutAssignmentRequest(); request2.mode = model_1.CalculationMode.None; request2.recalculate = false; request2.assignmentUid = modifiedAssignment.uid; request2.assignment = modifiedAssignment; request2.name = fileName; request2.folder = remotePath; const result2 = yield tasksApi.putAssignment(request2); chai_1.expect(result2.response.statusCode).to.equal(200); chai_1.expect(result2.body.assignment).not.undefined.and.not.null; chai_1.expect(result2.body.assignment.uid).to.equal(modifiedAssignment.uid); chai_1.expect(result2.body.assignment.vac).to.equal(modifiedAssignment.vac); chai_1.expect(result2.body.assignment.cost).to.not.equal(modifiedAssignment.cost, "Calculated fields must be overwritten"); chai_1.expect(result2.body.assignment.start).to.eql(modifiedAssignment.start); chai_1.expect(result2.body.assignment.finish).to.eql(modifiedAssignment.finish); chai_1.expect(result2.body.assignment.work).to.equal("80.00:00:00"); chai_1.expect(result2.body.assignment.actualWork).to.equal(modifiedAssignment.actualWork); chai_1.expect(result2.body.assignment.actualStart).to.eql(modifiedAssignment.actualStart); chai_1.expect(result2.body.assignment.actualFinish).to.eql(modifiedAssignment.actualFinish); chai_1.expect(result2.body.assignment.actualOvertimeWork).to.equal("100.10:10:00"); chai_1.expect(result2.body.assignment.baselines.length).to.equal(1); chai_1.expect(result2.body.assignment.baselines[0].baselineNumber).to.equal(model_1.BaselineType.Baseline1); chai_1.expect(result2.body.assignment.baselines[0].start).to.eql(modifiedAssignment.baselines[0].start); chai_1.expect(result2.body.assignment.timephasedData.length).to.equal(1); chai_1.expect(result2.body.assignment.timephasedData[0].uid).to.equal(modifiedAssignment.uid); chai_1.expect(result2.body.assignment.timephasedData[0].value).to.equal("PT4H0M0S"); chai_1.expect(result2.body.assignment.timephasedData[0].start).to.eql(modifiedAssignment.timephasedData[0].start); chai_1.expect(result2.body.assignment.timephasedData[0].finish).to.eql(modifiedAssignment.timephasedData[0].finish); chai_1.expect(result2.body.assignment.timephasedData[0].timephasedDataType).to.equal(modifiedAssignment.timephasedData[0].timephasedDataType); })); }); describe("deleteAssignment function", () => { it("should return response with code 200 and correct data", () => __awaiter(void 0, void 0, void 0, function* () { const tasksApi = BaseTest.initializeTasksApi(); const fileName = "NewProductDev.mpp"; const localPath = BaseTest.localBaseTestDataFolder + fileName; const remotePath = BaseTest.remoteBaseTestDataFolder; const remoteFullPath = remotePath + "/" + fileName; yield tasksApi.uploadFileToStorage(remoteFullPath, localPath); const request1 = new model_1.DeleteAssignmentRequest(); request1.assignmentUid = 63; request1.name = fileName; request1.folder = remotePath; const result1 = yield tasksApi.deleteAssignment(request1); chai_1.expect(result1.response.statusCode).to.equal(200); const request2 = new model_1.GetAssignmentsRequest(); request2.name = fileName; request2.folder = remotePath; const result2 = yield tasksApi.getAssignments(request2); chai_1.expect(result2.response.statusCode).to.equal(200); chai_1.expect(result2.body.assignments.assignmentItem.some(a => a.taskUid === 34 && a.resourceUid === 1)).is.false; chai_1.expect(result2.body.assignments.assignmentItem.some(a => a.uid == 63)).is.false; })); }); //# sourceMappingURL=assignmentsTests.js.map