Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using OData.DataTransferObjects;
- using System.Collections.Generic;
- using System.Net.Http;
- using System.Web;
- using System.Web.Http;
- using Moq;
- using AppAPI.Controllers.App;
- using System.Web.Http.Results;
- using OData;
- using OData.NAVData;
- namespace WebApiTesting
- {
- [TestClass]
- public class UnitTest1
- {
- private static Tasks mockTask;
- private TimePlan mockTimePlan;
- private ResourceTaskTime mockResTaskTim;
- private static List<Dto_ResourceTaskTime> resourceTaskTime = new List<Dto_ResourceTaskTime>();
- private static List<Dto_Resource> resource = new List<Dto_Resource>();
- private SalesPerson mockResource;
- private Facade facade = Facade.GetInstance;
- [TestInitialize]
- public void TaskInitializer()
- {
- mockResource = facade.UserRepo.GetSalesPerson("Carsten");
- mockTask = new Tasks()
- {
- end = null,
- Planned_Date = new DateTime(2017, 12, 24),
- Priority = "Critical",
- Responsible = "Klaus",
- CustomerNo = "Bjørn",
- Status = "Planned",
- Text = "Testing tests",
- Title = "Test task"
- };
- mockTimePlan = new TimePlan()
- {
- start = new DateTime(2017, 12, 24),
- end = new DateTime(2017, 12, 25)
- };
- //Dto_ResourceTaskTime mockResTaskTime = new Dto_ResourceTaskTime();
- //mockResTaskTime.CalcEstimate = 5;
- //mockResTaskTime.Customer = "Bjørn";
- //mockResTaskTime.end = DateTime.Today;
- //mockResTaskTime.OrigResourceRef = "carsten";
- //mockResTaskTime.Priority = "critical";
- //mockResTaskTime.start = DateTime.Today;
- //mockResTaskTime.Status = "Planned";
- //mockResTaskTime.TaskRef = mockTask.TaskGUID;
- //Dto_Task regularTask = new Dto_Task()
- //{
- // CustomerName = "Bent",
- // end = new DateTime(2017, 12, 26),
- // No = 2,
- // Planned_Date = new DateTime(2017, 12, 24),
- // Priority = "Critical",
- // ResourceTaskTimes = null,
- // Responsible = "Klaus",
- // CustomerNo = "Lars",
- // start = new DateTime(2017, 12, 23),
- // Status = "Planned",
- // Text = "Testing regular task",
- // Title = "Test task",
- // TaskGUID = Guid.NewGuid()
- //};task.Add(regularTask);
- //Dto_Task taskWithoutCustomerRef = new Dto_Task()
- //{
- // CustomerName = null,
- // end = null,
- // No = 1,
- // Planned_Date = new DateTime(2017, 12, 24),
- // Priority = "Critical",
- // ResourceTaskTimes = null,
- // Responsible = "Klaus",
- // CustomerNo = null,
- // start = new DateTime(2017, 12, 23),
- // Status = "Planned",
- // Text = "Testing tests",
- // Title = "Task without end customre ref",
- // TaskGUID = Guid.NewGuid()
- //};task.Add(taskWithoutCustomerRef);
- }
- // This method will check if a ResourceTaskTimes FlowField is set correctly based on its references.
- [TestMethod]
- public void TestResourceTaskTimeFlowFields()
- {
- var taskGuid = facade.TaskRepo.CreateTask(mockTask);
- var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
- Assert.IsNotNull(facade.TaskRepo.GetTask(taskGuid));
- Assert.IsNotNull(facade.TimePlanRepo.Get(timePlan.No));
- mockResTaskTim = new ResourceTaskTime()
- {
- TaskRef = taskGuid,
- TimePlanRef = timePlan.No,
- ResourceRef = mockResource.Code
- };
- facade.ResourceTaskTimeRepo.Create(taskGuid, mockResource.Code, timePlan.No);
- var newResTaskTime = facade.ResourceTaskTimeRepo.Get(taskGuid, mockResource.Code, timePlan.No);
- Assert.IsNotNull(newResTaskTime);
- Assert.AreEqual(newResTaskTime.start, mockTimePlan.start);
- Assert.AreEqual(newResTaskTime.end, mockTimePlan.end);
- Assert.AreEqual(newResTaskTime.Status, mockTask.Status);
- Assert.AreEqual(newResTaskTime.Title, mockTask.Title);
- Assert.AreEqual(newResTaskTime.CalcEstimate, 14.8);
- Assert.AreEqual(newResTaskTime.Customer, mockTask.CustomerName);
- }
- // This method will check if it is possible to have the same TimePlan on multiple resources.
- [TestMethod]
- public void TimePlanMultipleResources()
- {
- var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
- var taskGuid = facade.TaskRepo.CreateTask(mockTask);
- var resource1 = facade.UserRepo.GetSalesPerson("Carsten");
- var resource2 = facade.UserRepo.GetSalesPerson("Klaus");
- var newRTTP1 = new ResourceTaskTime()
- {
- TaskRef = taskGuid,
- TimePlanRef = timePlan.No,
- ResourceRef = resource1.Code
- };
- var newRTTP2 = new ResourceTaskTime()
- {
- TaskRef = taskGuid,
- TimePlanRef = timePlan.No,
- ResourceRef = resource2.Code
- };
- facade.ResourceTaskTimeRepo.Create(newRTTP1.TaskRef, newRTTP1.ResourceRef, newRTTP1.TimePlanRef);
- facade.ResourceTaskTimeRepo.Create(newRTTP2.TaskRef, newRTTP2.ResourceRef, newRTTP2.TimePlanRef);
- var rttp1 = facade.ResourceTaskTimeRepo.Get(newRTTP1.TaskRef, newRTTP1.ResourceRef, newRTTP1.TimePlanRef);
- var rttp2 = facade.ResourceTaskTimeRepo.Get(newRTTP2.TaskRef, newRTTP2.ResourceRef, newRTTP2.TimePlanRef);
- Assert.IsNotNull(rttp1);
- Assert.IsNotNull(rttp2);
- }
- // This method will check if it is possible to have the same timeplan on multiple Tasks. Which shouldent be possible.
- [TestMethod]
- public void TimePlanWithMultipleTask()
- {
- var task1Guid = facade.TaskRepo.CreateTask(mockTask);
- var task2Guid = facade.TaskRepo.CreateTask(mockTask);
- var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
- Assert.IsNotNull(facade.TaskRepo.GetTask(task1Guid));
- Assert.IsNotNull(facade.TaskRepo.GetTask(task2Guid));
- Assert.IsNotNull(facade.TimePlanRepo.Get(timePlan.No));
- mockResTaskTim = new ResourceTaskTime()
- {
- TaskRef = task1Guid,
- TimePlanRef = timePlan.No,
- ResourceRef = mockResource.Code
- };
- mockResTaskTim = new ResourceTaskTime()
- {
- TaskRef = task2Guid,
- TimePlanRef = timePlan.No,
- ResourceRef = mockResource.Code
- };
- facade.ResourceTaskTimeRepo.Create(task1Guid, mockResource.Code, timePlan.No);
- facade.ResourceTaskTimeRepo.Create(task2Guid, mockResource.Code, timePlan.No);
- var newResTaskTime1 = facade.ResourceTaskTimeRepo.Get(task1Guid, mockResource.Code, timePlan.No);
- var newResTaskTime2 = facade.ResourceTaskTimeRepo.Get(task2Guid, mockResource.Code, timePlan.No);
- Assert.IsNotNull(newResTaskTime1);
- Assert.IsNull(newResTaskTime2);
- }
- // This method checks if a ResourceTaskTime get correctly updated when references is changed.
- [TestMethod]
- public void UpdateResourceTaskWithReference()
- {
- var taskGuid = facade.TaskRepo.CreateTask(mockTask);
- var timePlan = facade.TimePlanRepo.Create(mockTimePlan);
- Assert.IsNotNull(facade.TaskRepo.GetTask(taskGuid));
- Assert.IsNotNull(facade.TimePlanRepo.Get(timePlan.No));
- mockResTaskTim = new ResourceTaskTime()
- {
- TaskRef = taskGuid,
- TimePlanRef = timePlan.No,
- ResourceRef = mockResource.Code
- };
- facade.ResourceTaskTimeRepo.Create(taskGuid, mockResource.Code, timePlan.No);
- var oldResTaskTime = facade.ResourceTaskTimeRepo.Get(taskGuid, mockResource.Code, timePlan.No);
- Dto_ResourceTaskTime resTaskTim = new Dto_ResourceTaskTime()
- {
- OrigResourceRef = oldResTaskTime.ResourceRef,
- ResourceRef = "Klaus",
- TimePlanRef = oldResTaskTime.TimePlanRef,
- TaskRef = oldResTaskTime.TaskRef
- };
- var newResTaskTime = facade.TaskPlanningManager.UpdateTimePlanWithRefs(resTaskTim);
- var oldObject = facade.ResourceTaskTimeRepo.Get(oldResTaskTime.TaskRef, oldResTaskTime.ResourceRef, oldResTaskTime.TimePlanRef);
- var newObject = facade.ResourceTaskTimeRepo.Get(resTaskTim.TaskRef, resTaskTim.ResourceRef, resTaskTim.TimePlanRef);
- Assert.IsNull(oldObject);
- Assert.IsNotNull(newObject);
- }
- // This method will check if login creates a user if it already exists in Navision.
- [TestMethod]
- public void CheckLogin()
- {
- Dto_User mockUser = new Dto_User();
- mockUser.username = "testuser";
- mockUser.password = "Test123!";
- ContactController controller = new ContactController();
- var actionResult = controller.Login(mockUser);
- Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
- var createdUser = facade.UserRepo.GetSalesPerson(mockUser.username);
- Assert.IsNull(createdUser);
- mockUser.username = "carsten";
- mockUser.password = "Bbbbbb1!";
- actionResult = controller.Login(mockUser);
- Assert.IsInstanceOfType(actionResult, typeof(OkResult));
- createdUser = facade.UserRepo.GetSalesPerson(mockUser.username);
- Assert.AreEqual(createdUser.Name, mockUser.username);
- Assert.AreEqual(createdUser.Password, mockUser.password);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement