Skip to content

Commit fde7e3c

Browse files
[TASKSCLOUD-492] - Added tests for Task Links endpoints.
1 parent 4a8b827 commit fde7e3c

File tree

1 file changed

+173
-0
lines changed

1 file changed

+173
-0
lines changed

tests/task_links_test.go

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
/*
2+
* --------------------------------------------------------------------------------
3+
* <copyright company="Aspose" file="task_links_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 task links.
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 task links.
40+
func Test_TaskLinks_GetTaskLinks(t *testing.T) {
41+
localFileName := "NewProductDev.mpp"
42+
remoteFileName := CreateRandomGuid() + localFileName
43+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
44+
45+
opts := &requests.GetTaskLinksOpts{
46+
Name: remoteFileName,
47+
Folder: optional.NewString(remoteBaseTestDataFolder),
48+
}
49+
result, _, err := client.TasksApi.GetTaskLinks(ctx, opts)
50+
if err != nil {
51+
t.Error(err)
52+
}
53+
assert.Equal(t, int32(200), result.Code)
54+
assert.NotNil(t, result.TaskLinks)
55+
assert.Equal(t, 24, len(result.TaskLinks))
56+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
57+
}
58+
59+
// Test for post task link.
60+
func Test_TaskLinks_PostTaskLink(t *testing.T) {
61+
localFileName := "NewProductDev.mpp"
62+
remoteFileName := CreateRandomGuid() + localFileName
63+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
64+
65+
newTaskLinkType := models.START_TO_START_TaskLinkType
66+
newTimeUnitType := models.DAY_TimeUnitType
67+
taskLink := models.TaskLink{
68+
PredecessorUid: 28,
69+
SuccessorUid: 30,
70+
Lag: 9600,
71+
LagFormat: &newTimeUnitType,
72+
LinkType: &newTaskLinkType,
73+
}
74+
postOpts := &requests.PostTaskLinkOpts{
75+
TaskLink: taskLink,
76+
Name: remoteFileName,
77+
Folder: optional.NewString(remoteBaseTestDataFolder),
78+
}
79+
postResult, _, err := client.TasksApi.PostTaskLink(ctx, postOpts)
80+
if err != nil {
81+
t.Error(err)
82+
}
83+
assert.Equal(t, int32(200), postResult.Code)
84+
85+
getResult, _, err := client.TasksApi.GetTaskLinks(ctx, &requests.GetTaskLinksOpts{
86+
Name: remoteFileName,
87+
Folder: optional.NewString(remoteBaseTestDataFolder),
88+
})
89+
if err != nil {
90+
t.Error(err)
91+
}
92+
assert.Equal(t, int32(200), getResult.Code)
93+
assert.Equal(t, 25, len(getResult.TaskLinks))
94+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
95+
}
96+
97+
// Test for put task link.
98+
func Test_TaskLinks_PutTaskLink(t *testing.T) {
99+
localFileName := "NewProductDev.mpp"
100+
remoteFileName := CreateRandomGuid() + localFileName
101+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
102+
103+
getResult, _, err := client.TasksApi.GetTaskLinks(ctx, &requests.GetTaskLinksOpts{
104+
Name: remoteFileName,
105+
Folder: optional.NewString(remoteBaseTestDataFolder),
106+
})
107+
if err != nil {
108+
t.Error(err)
109+
}
110+
assert.Equal(t, int32(200), getResult.Code)
111+
assert.Equal(t, 24, len(getResult.TaskLinks))
112+
taskLinkToEdit := &getResult.TaskLinks[0]
113+
newTaskLinkType := models.START_TO_FINISH_TaskLinkType
114+
newTimeUnitType := models.DAY_TimeUnitType
115+
// Modification of PredecessorUid and SuccessorUid fields is not supported.
116+
taskLinkToEdit.Lag = 9600
117+
taskLinkToEdit.LagFormat = &newTimeUnitType
118+
taskLinkToEdit.LinkType = &newTaskLinkType
119+
putOpts := &requests.PutTaskLinkOpts{
120+
Index: 1,
121+
TaskLink: *taskLinkToEdit,
122+
Name: remoteFileName,
123+
Folder: optional.NewString(remoteBaseTestDataFolder),
124+
}
125+
putResult, _, err := client.TasksApi.PutTaskLink(ctx, putOpts)
126+
if err != nil {
127+
t.Error(err)
128+
}
129+
assert.Equal(t, int32(200), putResult.Code)
130+
131+
getResult, _, err = client.TasksApi.GetTaskLinks(ctx, &requests.GetTaskLinksOpts{
132+
Name: remoteFileName,
133+
Folder: optional.NewString(remoteBaseTestDataFolder),
134+
})
135+
if err != nil {
136+
t.Error(err)
137+
}
138+
assert.Equal(t, int32(200), getResult.Code)
139+
assert.Equal(t, 24, len(getResult.TaskLinks))
140+
assert.Equal(t, *taskLinkToEdit.LinkType, *getResult.TaskLinks[0].LinkType)
141+
assert.Equal(t, taskLinkToEdit.Lag, getResult.TaskLinks[0].Lag)
142+
assert.Equal(t, *taskLinkToEdit.LagFormat, *getResult.TaskLinks[0].LagFormat)
143+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
144+
}
145+
146+
// Test for delete task link.
147+
func Test_TaskLinks_DeleteTaskLink(t *testing.T) {
148+
localFileName := "NewProductDev.mpp"
149+
remoteFileName := CreateRandomGuid() + localFileName
150+
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
151+
152+
deleteOpts := &requests.DeleteTaskLinkOpts{
153+
Index: 1,
154+
Name: remoteFileName,
155+
Folder: optional.NewString(remoteBaseTestDataFolder),
156+
}
157+
deleteResult, _, err := client.TasksApi.DeleteTaskLink(ctx, deleteOpts)
158+
if err != nil {
159+
t.Error(err)
160+
}
161+
assert.Equal(t, int32(200), deleteResult.Code)
162+
163+
getResult, _, err := client.TasksApi.GetTaskLinks(ctx, &requests.GetTaskLinksOpts{
164+
Name: remoteFileName,
165+
Folder: optional.NewString(remoteBaseTestDataFolder),
166+
})
167+
if err != nil {
168+
t.Error(err)
169+
}
170+
assert.Equal(t, int32(200), getResult.Code)
171+
assert.Equal(t, 23, len(getResult.TaskLinks))
172+
t.Cleanup(func() { DeleteTestFileFromStorage(t, ctx, client) })
173+
}

0 commit comments

Comments
 (0)