Skip to content

Commit e99738b

Browse files
[TASKSCLOUD-489] - Added tests for Resources endpoints.
1 parent 5891c31 commit e99738b

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed

tests/resources_test.go

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
/*
2+
* --------------------------------------------------------------------------------
3+
* <copyright company="Aspose" file="resources_test.go">
4+
* Copyright (c) 2021 Aspose.Tasks Cloud
5+
* </copyright>
6+
* <summary>
7+
* Permission is hereby granted, free of charge, to any person obtaining a copy
8+
* of this software and associated documentation files (the "Software"), to deal
9+
* in the Software without restriction, including without limitation the rights
10+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
* copies of the Software, and to permit persons to whom the Software is
12+
* furnished to do so, subject to the following conditions:
13+
*
14+
* The above copyright notice and this permission notice shall be included in all
15+
* copies or substantial portions of the Software.
16+
*
17+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23+
* SOFTWARE.
24+
* </summary>
25+
* --------------------------------------------------------------------------------
26+
*/
27+
28+
// Example of how to work with resources.
29+
package api_test
30+
31+
import (
32+
"github.com/antihax/optional"
33+
"github.com/aspose-tasks-cloud/aspose-tasks-cloud-go/api/models"
34+
"github.com/aspose-tasks-cloud/aspose-tasks-cloud-go/api/requests"
35+
"github.com/stretchr/testify/assert"
36+
"testing"
37+
)
38+
39+
// Test for get resources.
40+
func Test_Resources_GetResources(t *testing.T) {
41+
localFileName := "NewProductDev.mpp"
42+
remoteFileName := CreateRandomGuid() + localFileName
43+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
44+
45+
opts := &requests.GetResourcesOpts{
46+
Name: remoteFileName,
47+
Folder: optional.NewString(remoteBaseTestDataFolder),
48+
}
49+
result, _, err := client.TasksApi.GetResources(ctx, opts)
50+
if err != nil {
51+
t.Error(err)
52+
}
53+
assert.Equal(t, int32(200), result.Code)
54+
assert.NotNil(t, result.Resources)
55+
assert.Equal(t, 2, len(result.Resources.ResourceItem))
56+
assert.Equal(t, "Project manager", result.Resources.ResourceItem[1].Name)
57+
assert.Equal(t, int32(1), result.Resources.ResourceItem[1].Uid)
58+
assert.Equal(t, int32(1), result.Resources.ResourceItem[1].Id)
59+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
60+
}
61+
62+
// Test for post resource.
63+
func Test_Resources_PostResource(t *testing.T) {
64+
localFileName := "Home_move_plan.mpp"
65+
remoteFileName := CreateRandomGuid() + localFileName
66+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
67+
68+
getOpts := &requests.GetResourcesOpts{
69+
Name: remoteFileName,
70+
Folder: optional.NewString(remoteBaseTestDataFolder),
71+
}
72+
getResult, _, err := client.TasksApi.GetResources(ctx, getOpts)
73+
if err != nil {
74+
t.Error(err)
75+
}
76+
assert.Equal(t, int32(200), getResult.Code)
77+
assert.NotNil(t, getResult.Resources)
78+
79+
startCount := len(getResult.Resources.ResourceItem)
80+
postOpts := &requests.PostResourceOpts{
81+
ResourceName: optional.NewString("new resource"),
82+
Name: remoteFileName,
83+
Folder: optional.NewString(remoteBaseTestDataFolder),
84+
}
85+
postResult, _, err := client.TasksApi.PostResource(ctx, postOpts)
86+
if err != nil {
87+
t.Error(err)
88+
}
89+
assert.Equal(t, int32(201), postResult.Code)
90+
91+
getResult, _, err = client.TasksApi.GetResources(ctx, getOpts)
92+
if err != nil {
93+
t.Error(err)
94+
}
95+
assert.Equal(t, int32(200), getResult.Code)
96+
assert.NotNil(t, getResult.Resources)
97+
assert.Equal(t, startCount+1, len(getResult.Resources.ResourceItem))
98+
var addedResource models.ResourceItem
99+
for _, el := range getResult.Resources.ResourceItem {
100+
if el.Uid == postResult.ResourceItem.Uid {
101+
addedResource = el
102+
}
103+
}
104+
assert.Equal(t, postOpts.ResourceName.Value(), addedResource.Name)
105+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
106+
}
107+
108+
// Test for put resource.
109+
func Test_Resources_PutResource(t *testing.T) {
110+
localFileName := "sample.mpp"
111+
remoteFileName := CreateRandomGuid() + localFileName
112+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
113+
114+
getOpts := &requests.GetResourceOpts{
115+
ResourceUid: 1,
116+
Name: remoteFileName,
117+
Folder: optional.NewString(remoteBaseTestDataFolder),
118+
}
119+
getResult, _, err := client.TasksApi.GetResource(ctx, getOpts)
120+
if err != nil {
121+
t.Error(err)
122+
}
123+
assert.Equal(t, int32(200), getResult.Code)
124+
assert.NotNil(t, getResult.Resource)
125+
126+
newBaselineNumber := models.BASELINE1_BaselineType
127+
newBaseline := models.Baseline{
128+
BaselineNumber: &newBaselineNumber,
129+
Cost: 44,
130+
}
131+
getResult.Resource.Name = "Modified Resource1"
132+
getResult.Resource.Cost = 200
133+
getResult.Resource.Start = CreateTime(2000, 10, 10, 0, 0, 0)
134+
newWork := "4.04:10:00"
135+
getResult.Resource.Work = &newWork
136+
newOvertimeWork := "4.04:00:00"
137+
getResult.Resource.OvertimeWork = &newOvertimeWork
138+
newWorkgroup := models.NONE_WorkGroupType
139+
getResult.Resource.Workgroup = &newWorkgroup
140+
getResult.Resource.StandardRate = 101
141+
getResult.Resource.Finish = CreateTime(2000, 10, 10, 0, 0, 0)
142+
getResult.Resource.Baselines = []models.Baseline{newBaseline}
143+
putOpts := &requests.PutResourceOpts{
144+
ResourceUid: 1,
145+
Resource: *getResult.Resource,
146+
Recalculate: optional.NewBool(false),
147+
Mode: optional.NewString(string(models.NONE_CalculationMode)),
148+
Name: remoteFileName,
149+
Folder: optional.NewString(remoteBaseTestDataFolder),
150+
}
151+
putResult, _, err := client.TasksApi.PutResource(ctx, putOpts)
152+
if err != nil {
153+
t.Error(err)
154+
}
155+
assert.Equal(t, int32(200), putResult.Code)
156+
assert.Equal(t, 1, len(putResult.Resource.Baselines))
157+
assert.Equal(t, *newBaseline.BaselineNumber, *putResult.Resource.Baselines[0].BaselineNumber)
158+
assert.Equal(t, newBaseline.Cost, putResult.Resource.Baselines[0].Cost)
159+
assert.Equal(t, getResult.Resource.StandardRate, putResult.Resource.StandardRate)
160+
assert.Equal(t, getResult.Resource.Start, putResult.Resource.Start)
161+
assert.Equal(t, getResult.Resource.Finish, putResult.Resource.Finish)
162+
assert.Equal(t, *getResult.Resource.Work, *putResult.Resource.Work)
163+
assert.Equal(t, *getResult.Resource.Workgroup, *putResult.Resource.Workgroup)
164+
assert.Equal(t, *getResult.Resource.OvertimeWork, *putResult.Resource.OvertimeWork)
165+
assert.Equal(t, getResult.Resource.Cost, putResult.Resource.Cost)
166+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
167+
}
168+
169+
// Test for delete resource.
170+
func Test_Resources_DeleteResource(t *testing.T) {
171+
localFileName := "Home_move_plan.mpp"
172+
remoteFileName := CreateRandomGuid() + localFileName
173+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
174+
175+
deleteOpts := &requests.DeleteResourceOpts{
176+
ResourceUid: 0,
177+
Name: remoteFileName,
178+
Folder: optional.NewString(remoteBaseTestDataFolder),
179+
}
180+
deleteResult, _, err := client.TasksApi.DeleteResource(ctx, deleteOpts)
181+
if err != nil {
182+
t.Error(err)
183+
}
184+
assert.Equal(t, int32(200), deleteResult.Code)
185+
186+
getOpts := &requests.GetResourcesOpts{
187+
Name: remoteFileName,
188+
Folder: optional.NewString(remoteBaseTestDataFolder),
189+
}
190+
getResult, _, err := client.TasksApi.GetResources(ctx, getOpts)
191+
if err != nil {
192+
t.Error(err)
193+
}
194+
assert.Equal(t, int32(200), getResult.Code)
195+
assert.NotNil(t, getResult.Resources)
196+
assert.Equal(t, 0, len(getResult.Resources.ResourceItem))
197+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
198+
}

0 commit comments

Comments
 (0)