Advertisement
Guest User

Untitled

a guest
Dec 20th, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.38 KB | None | 0 0
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using OData.DataTransferObjects;
  4. using System.Collections.Generic;
  5. using System.Net.Http;
  6. using System.Web;
  7. using System.Web.Http;
  8. using Moq;
  9. using AppAPI.Controllers.App;
  10. using System.Web.Http.Results;
  11. using OData;
  12. using OData.NAVData;
  13.  
  14. namespace WebApiTesting
  15. {
  16. [TestClass]
  17. public class UnitTest1
  18. {
  19. private static Tasks mockTask;
  20. private TimePlan mockTimePlan;
  21. private ResourceTaskTime mockResTaskTim;
  22. private static List<Dto_ResourceTaskTime> resourceTaskTime = new List<Dto_ResourceTaskTime>();
  23. private static List<Dto_Resource> resource = new List<Dto_Resource>();
  24.  
  25.  
  26. private SalesPerson mockResource;
  27. private Facade facade = Facade.GetInstance;
  28.  
  29. [TestInitialize]
  30. public void TaskInitializer()
  31. {
  32.  
  33. mockResource = facade.UserRepo.GetSalesPerson("Carsten");
  34.  
  35. mockTask = new Tasks()
  36. {
  37. end = null,
  38. Planned_Date = new DateTime(2017, 12, 24),
  39. Priority = "Critical",
  40. Responsible = "Klaus",
  41. CustomerNo = "Bjørn",
  42. Status = "Planned",
  43. Text = "Testing tests",
  44. Title = "Test task"
  45. };
  46.  
  47. mockTimePlan = new TimePlan()
  48. {
  49. start = new DateTime(2017, 12, 24),
  50. end = new DateTime(2017, 12, 25)
  51. };
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. //Dto_ResourceTaskTime mockResTaskTime = new Dto_ResourceTaskTime();
  62. //mockResTaskTime.CalcEstimate = 5;
  63. //mockResTaskTime.Customer = "Bjørn";
  64. //mockResTaskTime.end = DateTime.Today;
  65. //mockResTaskTime.OrigResourceRef = "carsten";
  66. //mockResTaskTime.Priority = "critical";
  67. //mockResTaskTime.start = DateTime.Today;
  68. //mockResTaskTime.Status = "Planned";
  69. //mockResTaskTime.TaskRef = mockTask.TaskGUID;
  70.  
  71. //Dto_Task regularTask = new Dto_Task()
  72. //{
  73. // CustomerName = "Bent",
  74. // end = new DateTime(2017, 12, 26),
  75. // No = 2,
  76. // Planned_Date = new DateTime(2017, 12, 24),
  77. // Priority = "Critical",
  78. // ResourceTaskTimes = null,
  79. // Responsible = "Klaus",
  80. // CustomerNo = "Lars",
  81. // start = new DateTime(2017, 12, 23),
  82. // Status = "Planned",
  83. // Text = "Testing regular task",
  84. // Title = "Test task",
  85. // TaskGUID = Guid.NewGuid()
  86.  
  87. //};task.Add(regularTask);
  88.  
  89. //Dto_Task taskWithoutCustomerRef = new Dto_Task()
  90. //{
  91. // CustomerName = null,
  92. // end = null,
  93. // No = 1,
  94. // Planned_Date = new DateTime(2017, 12, 24),
  95. // Priority = "Critical",
  96. // ResourceTaskTimes = null,
  97. // Responsible = "Klaus",
  98. // CustomerNo = null,
  99. // start = new DateTime(2017, 12, 23),
  100. // Status = "Planned",
  101. // Text = "Testing tests",
  102. // Title = "Task without end customre ref",
  103. // TaskGUID = Guid.NewGuid()
  104.  
  105. //};task.Add(taskWithoutCustomerRef);
  106. }
  107.  
  108.  
  109. // This method will check if a ResourceTaskTimes FlowField is set correctly based on its references.
  110. [TestMethod]
  111. public void TestResourceTaskTimeFlowFields()
  112. {
  113. var taskGuid = facade.TaskRepo.CreateTask(mockTask);
  114. var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
  115.  
  116. Assert.IsNotNull(facade.TaskRepo.GetTask(taskGuid));
  117. Assert.IsNotNull(facade.TimePlanRepo.Get(timePlan.No));
  118.  
  119. mockResTaskTim = new ResourceTaskTime()
  120. {
  121. TaskRef = taskGuid,
  122. TimePlanRef = timePlan.No,
  123. ResourceRef = mockResource.Code
  124. };
  125.  
  126. facade.ResourceTaskTimeRepo.Create(taskGuid, mockResource.Code, timePlan.No);
  127.  
  128. var newResTaskTime = facade.ResourceTaskTimeRepo.Get(taskGuid, mockResource.Code, timePlan.No);
  129. Assert.IsNotNull(newResTaskTime);
  130.  
  131. Assert.AreEqual(newResTaskTime.start, mockTimePlan.start);
  132. Assert.AreEqual(newResTaskTime.end, mockTimePlan.end);
  133. Assert.AreEqual(newResTaskTime.Status, mockTask.Status);
  134. Assert.AreEqual(newResTaskTime.Title, mockTask.Title);
  135. Assert.AreEqual(newResTaskTime.CalcEstimate, 14.8);
  136. Assert.AreEqual(newResTaskTime.Customer, mockTask.CustomerName);
  137. }
  138.  
  139. // This method will check if it is possible to have the same TimePlan on multiple resources.
  140. [TestMethod]
  141. public void TimePlanMultipleResources()
  142. {
  143. var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
  144. var taskGuid = facade.TaskRepo.CreateTask(mockTask);
  145.  
  146. var resource1 = facade.UserRepo.GetSalesPerson("Carsten");
  147. var resource2 = facade.UserRepo.GetSalesPerson("Klaus");
  148.  
  149. var newRTTP1 = new ResourceTaskTime()
  150. {
  151. TaskRef = taskGuid,
  152. TimePlanRef = timePlan.No,
  153. ResourceRef = resource1.Code
  154. };
  155.  
  156. var newRTTP2 = new ResourceTaskTime()
  157. {
  158. TaskRef = taskGuid,
  159. TimePlanRef = timePlan.No,
  160. ResourceRef = resource2.Code
  161. };
  162.  
  163. facade.ResourceTaskTimeRepo.Create(newRTTP1.TaskRef, newRTTP1.ResourceRef, newRTTP1.TimePlanRef);
  164. facade.ResourceTaskTimeRepo.Create(newRTTP2.TaskRef, newRTTP2.ResourceRef, newRTTP2.TimePlanRef);
  165.  
  166. var rttp1 = facade.ResourceTaskTimeRepo.Get(newRTTP1.TaskRef, newRTTP1.ResourceRef, newRTTP1.TimePlanRef);
  167. var rttp2 = facade.ResourceTaskTimeRepo.Get(newRTTP2.TaskRef, newRTTP2.ResourceRef, newRTTP2.TimePlanRef);
  168.  
  169.  
  170. Assert.IsNotNull(rttp1);
  171. Assert.IsNotNull(rttp2);
  172. }
  173.  
  174. // This method will check if it is possible to have the same timeplan on multiple Tasks. Which shouldent be possible.
  175. [TestMethod]
  176. public void TimePlanWithMultipleTask()
  177. {
  178. var task1Guid = facade.TaskRepo.CreateTask(mockTask);
  179. var task2Guid = facade.TaskRepo.CreateTask(mockTask);
  180. var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
  181.  
  182. Assert.IsNotNull(facade.TaskRepo.GetTask(task1Guid));
  183. Assert.IsNotNull(facade.TaskRepo.GetTask(task2Guid));
  184. Assert.IsNotNull(facade.TimePlanRepo.Get(timePlan.No));
  185.  
  186. mockResTaskTim = new ResourceTaskTime()
  187. {
  188. TaskRef = task1Guid,
  189. TimePlanRef = timePlan.No,
  190. ResourceRef = mockResource.Code
  191. };
  192.  
  193. mockResTaskTim = new ResourceTaskTime()
  194. {
  195. TaskRef = task2Guid,
  196. TimePlanRef = timePlan.No,
  197. ResourceRef = mockResource.Code
  198. };
  199.  
  200. facade.ResourceTaskTimeRepo.Create(task1Guid, mockResource.Code, timePlan.No);
  201. facade.ResourceTaskTimeRepo.Create(task2Guid, mockResource.Code, timePlan.No);
  202.  
  203. var newResTaskTime1 = facade.ResourceTaskTimeRepo.Get(task1Guid, mockResource.Code, timePlan.No);
  204. var newResTaskTime2 = facade.ResourceTaskTimeRepo.Get(task2Guid, mockResource.Code, timePlan.No);
  205. Assert.IsNotNull(newResTaskTime1);
  206. Assert.IsNull(newResTaskTime2);
  207. }
  208.  
  209. // This method checks if a ResourceTaskTime get correctly updated when references is changed.
  210. [TestMethod]
  211. public void UpdateResourceTaskWithReference()
  212. {
  213. var taskGuid = facade.TaskRepo.CreateTask(mockTask);
  214. var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
  215.  
  216. Assert.IsNotNull(facade.TaskRepo.GetTask(taskGuid));
  217. Assert.IsNotNull(facade.TimePlanRepo.Get(timePlan.No));
  218.  
  219. mockResTaskTim = new ResourceTaskTime()
  220. {
  221. TaskRef = taskGuid,
  222. TimePlanRef = timePlan.No,
  223. ResourceRef = mockResource.Code
  224. };
  225.  
  226. facade.ResourceTaskTimeRepo.Create(taskGuid, mockResource.Code, timePlan.No);
  227.  
  228. var oldResTaskTime = facade.ResourceTaskTimeRepo.Get(taskGuid, mockResource.Code, timePlan.No);
  229.  
  230. Dto_ResourceTaskTime resTaskTim = new Dto_ResourceTaskTime()
  231. {
  232. OrigResourceRef = oldResTaskTime.ResourceRef,
  233. ResourceRef = "Klaus",
  234. TimePlanRef = oldResTaskTime.TimePlanRef,
  235. TaskRef = oldResTaskTime.TaskRef
  236. };
  237.  
  238. var newResTaskTime = facade.TaskPlanningManager.UpdateTimePlanWithRefs(resTaskTim);
  239.  
  240. var oldObject = facade.ResourceTaskTimeRepo.Get(oldResTaskTime.TaskRef, oldResTaskTime.ResourceRef, oldResTaskTime.TimePlanRef);
  241. var newObject = facade.ResourceTaskTimeRepo.Get(resTaskTim.TaskRef, resTaskTim.ResourceRef, resTaskTim.TimePlanRef);
  242. Assert.IsNull(oldObject);
  243. Assert.IsNotNull(newObject);
  244.  
  245. }
  246.  
  247. // This method will check if login creates a user if it already exists in Navision.
  248. [TestMethod]
  249. public void CheckLogin()
  250. {
  251. Dto_User mockUser = new Dto_User();
  252. mockUser.username = "testuser";
  253. mockUser.password = "Test123!";
  254.  
  255. ContactController controller = new ContactController();
  256. var actionResult = controller.Login(mockUser);
  257. Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
  258.  
  259. var createdUser = facade.UserRepo.GetSalesPerson(mockUser.username);
  260. Assert.IsNull(createdUser);
  261.  
  262. mockUser.username = "carsten";
  263. mockUser.password = "Bbbbbb1!";
  264.  
  265. actionResult = controller.Login(mockUser);
  266. Assert.IsInstanceOfType(actionResult, typeof(OkResult));
  267.  
  268. createdUser = facade.UserRepo.GetSalesPerson(mockUser.username);
  269. Assert.AreEqual(createdUser.Name, mockUser.username);
  270. Assert.AreEqual(createdUser.Password, mockUser.password);
  271. }
  272. }
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement