1
+ /*
2
+ * MIT License
3
+
4
+ * Copyright (c) 2019 Aspose Pty Ltd
5
+
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import { expect } from "chai" ;
26
+ import "mocha" ;
27
+
28
+ import { GetResourcesRequest , PostResourceRequest , PutResourceRequest , GetResourceRequest , CalculationMode , Baseline , BaselineType , DeleteResourceRequest } from "../src/model/model" ;
29
+ import * as BaseTest from "./baseTest" ;
30
+
31
+ describe ( "getResources function" , ( ) => {
32
+ it ( "should return response with code 200 and correct data" , async ( ) => {
33
+
34
+ const tasksApi = BaseTest . initializeTasksApi ( ) ;
35
+ const fileName = "NewProductDev.mpp" ;
36
+ const localPath = BaseTest . localBaseTestDataFolder + fileName ;
37
+ const remotePath = BaseTest . remoteBaseTestDataFolder ;
38
+ const remoteFullPath = remotePath + "/" + fileName ;
39
+
40
+ await tasksApi . uploadFileToStorage ( remoteFullPath , localPath ) ;
41
+
42
+ const request = new GetResourcesRequest ( ) ;
43
+ request . name = fileName ;
44
+ request . folder = remotePath ;
45
+
46
+ const result = await tasksApi . getResources ( request ) ;
47
+
48
+ expect ( result . response . statusCode ) . to . equal ( 200 ) ;
49
+ expect ( result . body . resources ) . is . not . undefined . and . not . null ;
50
+ expect ( result . body . resources . resourceItem . length ) . to . equal ( 2 ) ;
51
+ expect ( result . body . resources . resourceItem [ 1 ] . name ) . to . equal ( "Project manager" ) ;
52
+ expect ( result . body . resources . resourceItem [ 1 ] . uid ) . to . equal ( 1 ) ;
53
+ expect ( result . body . resources . resourceItem [ 1 ] . id ) . to . equal ( 1 ) ;
54
+ } ) ;
55
+ } ) ;
56
+
57
+ describe ( "postResource function" , ( ) => {
58
+ it ( "should return response with code 200 and correct data" , async ( ) => {
59
+
60
+ const tasksApi = BaseTest . initializeTasksApi ( ) ;
61
+ const fileName = "Home_move_plan.mpp" ;
62
+ const localPath = BaseTest . localBaseTestDataFolder + fileName ;
63
+ const remotePath = BaseTest . remoteBaseTestDataFolder ;
64
+ const remoteFullPath = remotePath + "/" + fileName ;
65
+
66
+ await tasksApi . uploadFileToStorage ( remoteFullPath , localPath ) ;
67
+
68
+ const getRequest = new GetResourcesRequest ( ) ;
69
+ getRequest . name = fileName ;
70
+ getRequest . folder = remotePath ;
71
+
72
+ let getResult = await tasksApi . getResources ( getRequest ) ;
73
+
74
+ expect ( getResult . body . code ) . to . equal ( 200 ) ;
75
+
76
+ const count = getResult . body . resources . resourceItem . length ;
77
+
78
+ const postRequest = new PostResourceRequest ( ) ;
79
+ postRequest . name = fileName ;
80
+ postRequest . folder = remotePath ;
81
+ postRequest . resourceName = "new resource" ;
82
+
83
+ const postResult = await tasksApi . postResource ( postRequest ) ;
84
+
85
+ expect ( postResult . body . code ) . to . equal ( 201 ) ;
86
+
87
+ getResult = await tasksApi . getResources ( getRequest ) ;
88
+
89
+ expect ( getResult . body . resources . resourceItem . length ) . to . equal ( count + 1 ) ;
90
+ const addedResource = getResult . body . resources . resourceItem . find ( r => r . uid == postResult . body . resourceItem . uid ) ;
91
+ expect ( addedResource . name ) . to . equal ( "new resource" ) ;
92
+ } ) ;
93
+ } ) ;
94
+
95
+ describe ( "putResource function" , ( ) => {
96
+ it ( "should return response with code 200 and correct data" , async ( ) => {
97
+
98
+ const tasksApi = BaseTest . initializeTasksApi ( ) ;
99
+ const fileName = "sample.mpp" ;
100
+ const localPath = BaseTest . localBaseTestDataFolder + fileName ;
101
+ const remotePath = BaseTest . remoteBaseTestDataFolder ;
102
+ const remoteFullPath = remotePath + "/" + fileName ;
103
+
104
+ await tasksApi . uploadFileToStorage ( remoteFullPath , localPath ) ;
105
+
106
+ const getRequest = new GetResourceRequest ( ) ;
107
+ getRequest . name = fileName ;
108
+ getRequest . folder = remotePath ;
109
+ getRequest . resourceUid = 1 ;
110
+
111
+ const getResult = await tasksApi . getResource ( getRequest ) ;
112
+
113
+ expect ( getResult . body . code ) . to . equal ( 200 ) ;
114
+ expect ( getResult . body . resource ) . is . not . undefined . and . not . null ;
115
+
116
+ const baseline = new Baseline ( ) ;
117
+ baseline . baselineNumber = BaselineType . Baseline1 ;
118
+ baseline . cost = 44 ;
119
+ const resource = getResult . body . resource ;
120
+ resource . name = "Modified Resource1" ;
121
+ resource . cost = 200 ;
122
+ resource . start = new Date ( Date . UTC ( 2000 , 9 , 10 ) ) ;
123
+ resource . work = "4.04:10:00" ;
124
+ resource . finish = new Date ( Date . UTC ( 2000 , 9 , 10 ) ) ;
125
+ resource . overtimeWork = "4.04:00:00" ;
126
+ resource . standardRate = 101 ;
127
+ resource . baselines = [ baseline ] ;
128
+
129
+ const putRequest = new PutResourceRequest ( ) ;
130
+ putRequest . name = fileName ;
131
+ putRequest . folder = remotePath ;
132
+ putRequest . resourceUid = 1 ;
133
+ putRequest . recalculate = false ;
134
+ putRequest . resource = resource ;
135
+ putRequest . mode = CalculationMode . None ;
136
+
137
+ const putResult = await tasksApi . putResource ( putRequest ) ;
138
+
139
+ expect ( putResult . body . code ) . to . equal ( 200 ) ;
140
+
141
+ expect ( putResult . body . resource . baselines . length ) . to . equal ( 1 ) ;
142
+ expect ( putResult . body . resource . baselines [ 0 ] . baselineNumber ) . to . equal ( BaselineType . Baseline1 ) ;
143
+ expect ( putResult . body . resource . baselines [ 0 ] . cost ) . to . equal ( 44 ) ;
144
+ expect ( putResult . body . resource . standardRate ) . to . equal ( resource . standardRate ) ;
145
+ expect ( BaseTest . getDateOnly ( putResult . body . resource . start ) ) . to . eql ( BaseTest . getDateOnly ( resource . start ) ) ;
146
+ expect ( putResult . body . resource . work ) . to . equal ( resource . work ) ;
147
+ expect ( BaseTest . getDateOnly ( putResult . body . resource . finish ) ) . to . eql ( BaseTest . getDateOnly ( resource . finish ) ) ;
148
+ expect ( putResult . body . resource . overtimeWork ) . to . equal ( resource . overtimeWork ) ;
149
+ expect ( putResult . body . resource . cost ) . to . equal ( resource . cost ) ;
150
+ } ) ;
151
+ } ) ;
152
+
153
+ describe ( "deleteResource function" , ( ) => {
154
+ it ( "should return response with code 200 and correct data" , async ( ) => {
155
+
156
+ const tasksApi = BaseTest . initializeTasksApi ( ) ;
157
+ const fileName = "Home_move_plan.mpp" ;
158
+ const localPath = BaseTest . localBaseTestDataFolder + fileName ;
159
+ const remotePath = BaseTest . remoteBaseTestDataFolder ;
160
+ const remoteFullPath = remotePath + "/" + fileName ;
161
+
162
+ await tasksApi . uploadFileToStorage ( remoteFullPath , localPath ) ;
163
+
164
+ const deleteRequest = new DeleteResourceRequest ( ) ;
165
+ deleteRequest . name = fileName ;
166
+ deleteRequest . folder = remotePath ;
167
+ deleteRequest . resourceUid = 0 ;
168
+
169
+ const deleteResult = await tasksApi . deleteResource ( deleteRequest ) ;
170
+
171
+ expect ( deleteResult . response . statusCode ) . to . equal ( 200 ) ;
172
+
173
+
174
+ const getRequest = new GetResourcesRequest ( ) ;
175
+ getRequest . name = fileName ;
176
+ getRequest . folder = remotePath ;
177
+
178
+ const getResult = await tasksApi . getResources ( getRequest ) ;
179
+
180
+ expect ( getResult . response . statusCode ) . to . equal ( 200 ) ;
181
+ expect ( getResult . body . resources . resourceItem . length ) . to . equal ( 0 ) ;
182
+ } ) ;
183
+ } ) ;
0 commit comments