Skip to content
This repository was archived by the owner on Oct 3, 2022. It is now read-only.

Commit d6a5b6b

Browse files
committed
Merge branch 'develop'
2 parents be73855 + 944fbf0 commit d6a5b6b

File tree

217 files changed

+28963
-477
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

217 files changed

+28963
-477
lines changed

.gitignore

Lines changed: 278 additions & 3 deletions
Large diffs are not rendered by default.
2.47 MB
Binary file not shown.

.vs/TakeMyTime.NETCore/v16/.suo

245 KB
Binary file not shown.
-1.57 MB
Binary file not shown.

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2019 BinderDyn
3+
Copyright (c) 2020 Marvin Binder
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

Libs/BinderDyn.LoggingUtility.dll

11 KB
Binary file not shown.

README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,19 @@
11
# TakeMyTime.NETCore
2-
Switch to .NET Core
2+
3+
Managing your productive time was never that easy! Display statistics, measure your progress and get things done!
4+
5+
6+
## THIRD PARTY LICENSES
7+
8+
9+
This app uses MATERIAL ICONS - Licensed under the Apache License, Version 2.0 (the "License");
10+
you may not use this file except in compliance with the License.
11+
You may obtain a copy of the License at
12+
13+
http://www.apache.org/licenses/LICENSE-2.0
14+
15+
Unless required by applicable law or agreed to in writing, software
16+
distributed under the License is distributed on an "AS IS" BASIS,
17+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
See the License for the specific language governing permissions and
19+
limitations under the License.
Lines changed: 263 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,263 @@
1+
using Common.Enums;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
using TakeMyTime.BLL.Logic;
8+
using TakeMyTime.DAL.uow;
9+
10+
using TakeMyTime.Models.Models;
11+
using static TakeMyTime.Tests.Common.CreateUpdateParams;
12+
13+
namespace TakeMyTime.BLL.Tests
14+
{
15+
[TestClass]
16+
public class AssignmentLogicTests
17+
{
18+
UnitOfWork uow;
19+
20+
[TestInitialize]
21+
public void GetTestUnitOfWork()
22+
{
23+
this.uow = new UnitOfWork();
24+
this.uow.CreateDatabase();
25+
}
26+
27+
#region SettingUpTestingEnvironment
28+
29+
private void CreateTestProjectAndProjectType()
30+
{
31+
GetTestUnitOfWork();
32+
var projectTypeCreateParam = new ProjectTypeCreateParam
33+
{
34+
Name = "Test",
35+
Description = "Test project type"
36+
};
37+
38+
var projectCreateParam = new ProjectCreateParam
39+
{
40+
Description = "Project description",
41+
Name = "New project",
42+
ProjectType = ProjectType.Create(projectTypeCreateParam)
43+
};
44+
45+
uow.ProjectTypes.Add(ProjectType.Create(projectTypeCreateParam));
46+
uow.Projects.Add(Project.Create(projectCreateParam));
47+
uow.Complete();
48+
}
49+
50+
private Assignment CreateTestAssignment()
51+
{
52+
var projectTypeCreateParam = new ProjectTypeCreateParam
53+
{
54+
Name = "Test",
55+
Description = "Test project type"
56+
};
57+
58+
var projectCreateParam = new ProjectCreateParam
59+
{
60+
Description = "Project description",
61+
Name = "New project",
62+
ProjectType = ProjectType.Create(projectTypeCreateParam)
63+
};
64+
65+
uow.ProjectTypes.Add(ProjectType.Create(projectTypeCreateParam));
66+
uow.Projects.Add(Project.Create(projectCreateParam));
67+
uow.Complete();
68+
69+
var project = uow.Projects.GetAll().First(p => p.Name == "New project");
70+
var assignmentCreateParam = new AssignmentCreateParam
71+
{
72+
Name = "TestAssignment",
73+
DateDue = DateTime.Now.AddDays(1),
74+
DatePlanned = DateTime.Now,
75+
Description = "New description",
76+
DurationPlannedAsTicks = new TimeSpan(1, 0, 0).Ticks,
77+
Project = project
78+
};
79+
80+
uow.Assignments.Add(Assignment.Create(assignmentCreateParam));
81+
uow.Complete();
82+
83+
var assignment = uow.Assignments.Load(a => a.Name == "TestAssignment").Single();
84+
return assignment;
85+
}
86+
87+
#endregion
88+
89+
90+
[TestMethod]
91+
public void AddAssignment_Test()
92+
{
93+
// ARRANGE
94+
CreateTestProjectAndProjectType();
95+
var project = uow.Projects.GetAll().First();
96+
97+
var createParam = new AssignmentCreateParam
98+
{
99+
Name = "TestAssignment",
100+
DateDue = DateTime.Now.AddDays(1),
101+
DatePlanned = DateTime.Now,
102+
Description = "New description",
103+
DurationPlannedAsTicks = new TimeSpan(1, 0, 0).Ticks,
104+
Project = project
105+
};
106+
107+
var assignmentLogic = new AssignmentLogic();
108+
109+
// ACT
110+
assignmentLogic.AddAssignment(createParam);
111+
assignmentLogic.Dispose();
112+
113+
// ASSERT
114+
var assignments = uow.Assignments.GetAll().ToList();
115+
Assert.IsTrue(assignments.Count > 0);
116+
Assert.AreEqual("TestAssignment", assignments.First(a => a.Name == "TestAssignment").Name);
117+
}
118+
119+
[TestMethod]
120+
public void GetAssignmentById_Test()
121+
{
122+
// ARRANGE
123+
var createdAssignment = CreateTestAssignment();
124+
int assignmentId = createdAssignment.Id;
125+
var assignmentLogic = new AssignmentLogic();
126+
127+
// ACT
128+
var foundAssignment = assignmentLogic.GetAssignmentById(assignmentId);
129+
assignmentLogic.Dispose();
130+
131+
// ASSERT
132+
Assert.IsNotNull(foundAssignment);
133+
Assert.AreEqual(createdAssignment.Name, foundAssignment.Name);
134+
}
135+
136+
[TestMethod]
137+
public void GetAssignmentsByProjectId_Test()
138+
{
139+
// ARRANGE
140+
var assignment = CreateTestAssignment();
141+
int projectId = assignment.Project_Id.Value;
142+
var assignmentLogic = new AssignmentLogic();
143+
144+
// ACT
145+
var foundAssignments = assignmentLogic.GetAssignmentsByProjectId(projectId);
146+
assignmentLogic.Dispose();
147+
148+
// ASSERT
149+
Assert.IsNotNull(foundAssignments);
150+
Assert.IsTrue(foundAssignments.All(a => a.Project_Id.Value == projectId));
151+
}
152+
153+
[TestMethod]
154+
public void UpdateAssignment_Test()
155+
{
156+
// ARRANGE
157+
var assignment = CreateTestAssignment();
158+
var updateParam = new AssignmentUpdateParam
159+
{
160+
Name = "TestAssignment Updated",
161+
DateDue = DateTime.Now.AddDays(1),
162+
DatePlanned = DateTime.Now,
163+
Description = "New description Updated",
164+
DurationPlannedAsTicks = new TimeSpan(1, 0, 0).Ticks,
165+
};
166+
var assignmentLogic = new AssignmentLogic();
167+
168+
// ACT
169+
assignmentLogic.UpdateAssignment(assignment.Id, updateParam);
170+
assignmentLogic.Dispose();
171+
this.uow.Dispose();
172+
this.uow = new UnitOfWork();
173+
174+
// ASSERT
175+
var updatedAssignment = uow.Assignments.Get(assignment.Id);
176+
Assert.AreNotEqual(assignment.Name, updatedAssignment.Name);
177+
Assert.AreEqual("TestAssignment Updated", updatedAssignment.Name);
178+
}
179+
180+
[TestMethod]
181+
public void DeleteAssignment_Test()
182+
{
183+
// ARRANGE
184+
var assignment = CreateTestAssignment();
185+
var assignmentLogic = new AssignmentLogic();
186+
187+
// ACT
188+
assignmentLogic.DeleteAssignment(assignment.Id);
189+
assignmentLogic.Dispose();
190+
this.uow.Dispose();
191+
this.uow = new UnitOfWork();
192+
193+
// ASSERT
194+
var foundAssignment = uow.Assignments.Get(assignment.Id);
195+
Assert.IsNull(foundAssignment);
196+
}
197+
198+
[TestMethod]
199+
public void AddSubtask_Test()
200+
{
201+
// ARRANGE
202+
var assignment = CreateTestAssignment();
203+
var assignmentLogic = new AssignmentLogic();
204+
var subtaskCreateParam = new SubtaskCreateParam
205+
{
206+
Description = "Test description",
207+
Name = "Test subtask",
208+
Priority = EnumDefinition.SubtaskPriority.High
209+
};
210+
211+
// ACT
212+
assignmentLogic.AddSubtask(assignment.Id, subtaskCreateParam);
213+
assignmentLogic.Dispose();
214+
this.uow.Dispose();
215+
this.uow = new UnitOfWork();
216+
217+
// ASSERT
218+
var subtask = this.uow.Subtasks.Load(s => s.Assignment_Id == assignment.Id).First();
219+
Assert.IsNotNull(subtask);
220+
}
221+
222+
[TestMethod]
223+
public void SetDone_Test()
224+
{
225+
// ARRANGE
226+
var assignment = CreateTestAssignment();
227+
var assignmentLogic = new AssignmentLogic();
228+
229+
// ACT
230+
assignmentLogic.SetDone(assignment.Id);
231+
assignmentLogic.Dispose();
232+
this.uow = new UnitOfWork();
233+
234+
// ASSERT
235+
var updatedAssignment = uow.Assignments.Get(assignment.Id);
236+
Assert.AreEqual(EnumDefinition.AssignmentStatus.Done, updatedAssignment.AssignmentStatus);
237+
}
238+
239+
[TestMethod]
240+
public void SetAborted_Test()
241+
{
242+
// ARRANGE
243+
var assignment = CreateTestAssignment();
244+
var assignmentLogic = new AssignmentLogic();
245+
246+
// ACT
247+
assignmentLogic.SetAborted(assignment.Id);
248+
assignmentLogic.Dispose();
249+
this.uow = new UnitOfWork();
250+
251+
// ASSERT
252+
var updatedAssignment = uow.Assignments.Get(assignment.Id);
253+
Assert.AreEqual(EnumDefinition.AssignmentStatus.Aborted, updatedAssignment.AssignmentStatus);
254+
}
255+
256+
[TestCleanup]
257+
public void Cleanup()
258+
{
259+
this.uow.DeleteDatabase();
260+
this.uow.Dispose();
261+
}
262+
}
263+
}

0 commit comments

Comments
 (0)