public void FindAllUpdated_DAL_Called() { // Arrange var educationPlanConverterMock = new Mock <IEducationPlanConverter>(MockBehavior.Strict); var moduleDataMapperMock = new Mock <IDataMapper <Module> >(MockBehavior.Strict); moduleDataMapperMock.Setup(dataMapper => dataMapper.FindAll()).Returns(GetDummyDataModules()); var educationPlanDataMapperMock = new Mock <IEducationPlanDataMapper>(MockBehavior.Strict); educationPlanDataMapperMock.Setup(dataMapper => dataMapper.FindAllUpdated()).Returns(GetDummyEducationPlanCompareList()); var educationPlanOutputterMock = new Mock <IEducationPlanOutputter>(MockBehavior.Strict); var plannerMock = new Mock <IPlanner>(MockBehavior.Strict); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); var profileDataMapperMock = new Mock <IDataMapper <CourseProfile> >(MockBehavior.Strict); EducationPlanManager manager = new EducationPlanManager(courseServiceMock.Object, plannerMock.Object, educationPlanOutputterMock.Object, profileDataMapperMock.Object, educationPlanDataMapperMock.Object, educationPlanConverterMock.Object, moduleDataMapperMock.Object); // Act var result = manager.FindAllUpdated(); // Assert educationPlanDataMapperMock.Verify(dataMapper => dataMapper.FindAllUpdated()); }
public void GenerateEducationPlan_null_ExceptionThrowed() { // Arrange var courses = new Collection <RestEducationPlanCourse> { new RestEducationPlanCourse { Code = "2NETARCH" }, new RestEducationPlanCourse { Code = "ADCSB" }, }; var educationPlanDataMapperMock = new Mock <IEducationPlanDataMapper>(MockBehavior.Strict); var educationPlanOutputterMock = new Mock <IEducationPlanOutputter>(MockBehavior.Strict); var plannerMock = new Mock <IPlanner>(MockBehavior.Strict); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); var profileDataMapperMock = new Mock <IDataMapper <CourseProfile> >(MockBehavior.Strict); var educationPlanConverterMock = new Mock <IEducationPlanConverter>(MockBehavior.Strict); var moduleDataMapperMock = new Mock <IDataMapper <Module> >(MockBehavior.Strict); EducationPlanManager manager = new EducationPlanManager(courseServiceMock.Object, plannerMock.Object, educationPlanOutputterMock.Object, profileDataMapperMock.Object, educationPlanDataMapperMock.Object, educationPlanConverterMock.Object, moduleDataMapperMock.Object); RestEducationPlan educationPlan = GetDummyRestEducationPlan(courses); // Act var result = manager.GenerateEducationPlan(null, null); // Assert ArgumentNullException }
public void GenerateEducationPlan_IntegrationTest_WithPriority() { var courses = new Collection <RestEducationPlanCourse> { new RestEducationPlanCourse { Code = "2NETARCH" }, new RestEducationPlanCourse { Code = "ADCSB", Priority = -1, Commentary = "Force to plan" }, }; RestEducationPlan restEducationPlan = GetDummyRestEducationPlan(courses); restEducationPlan.InPaymentFrom = new DateTime(2017, 3, 5); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); courseServiceMock.Setup(service => service.FindCourses(new List <string> { "2NETARCH", "ADCSB" })).Returns( new List <Integration.Course>() { CreateNewIntegrationCourseWithOneCourseImplementation("2NETARCH", 1, new Collection <DateTime> { new DateTime(2017, 3, 6), new DateTime(2017, 3, 7), new DateTime(2017, 3, 8) }), CreateNewIntegrationCourseWithOneCourseImplementation("ADCSB", 1, new Collection <DateTime> { new DateTime(2017, 3, 6), new DateTime(2017, 3, 7), new DateTime(2017, 3, 8) }), }); var dalConfig = DalConfiguration.Configuration; IEducationPlanManager manager = new EducationPlanManager(dalConfig.ProfilePath, courseServiceMock.Object, dalConfig.ManagementPropertiesPath, dalConfig.EducationPlanPath, dalConfig.EducationPlanUpdatedPath, dalConfig.ModulePath); // Act var result = manager.GenerateEducationPlan(restEducationPlan, null); // Assert courseServiceMock.Verify(outputter => outputter.FindCourses(new List <string> { "2NETARCH", "ADCSB" })); Assert.AreEqual(3, result.PlannedCourses.Count()); Assert.AreEqual("ADCSB", result.PlannedCourses.ElementAt(0).Code); Assert.AreEqual("Force to plan", result.PlannedCourses.ElementAt(0).Commentary); Assert.AreEqual("OLC1", result.PlannedCourses.ElementAt(1).Code); Assert.AreEqual("OLC2", result.PlannedCourses.ElementAt(2).Code); Assert.AreEqual(7, result.NotPlannedCourses.Count()); Assert.AreEqual("2NETARCH", result.NotPlannedCourses.ElementAt(0).Code); }
public void FindEducationPlans_DAL_Called() { // Arrange var courses = new Collection <RestEducationPlanCourse> { new RestEducationPlanCourse { Code = "2NETARCH" }, new RestEducationPlanCourse { Code = "ADCSB" }, }; var educationPlanConverterMock = new Mock <IEducationPlanConverter>(MockBehavior.Strict); var moduleDataMapperMock = new Mock <IDataMapper <Module> >(MockBehavior.Strict); moduleDataMapperMock.Setup(dataMapper => dataMapper.FindAll()).Returns(GetDummyDataModules()); var educationPlanDataMapperMock = new Mock <IEducationPlanDataMapper>(MockBehavior.Strict); educationPlanDataMapperMock.Setup(dataMapper => dataMapper.Find(It.IsAny <Func <EducationPlan, bool> >())).Returns(new List <EducationPlan>() { GetDummyEducationPlan() }); var educationPlanOutputterMock = new Mock <IEducationPlanOutputter>(MockBehavior.Strict); var plannerMock = new Mock <IPlanner>(MockBehavior.Strict); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); var profileDataMapperMock = new Mock <IDataMapper <CourseProfile> >(MockBehavior.Strict); EducationPlanManager manager = new EducationPlanManager(courseServiceMock.Object, plannerMock.Object, educationPlanOutputterMock.Object, profileDataMapperMock.Object, educationPlanDataMapperMock.Object, educationPlanConverterMock.Object, moduleDataMapperMock.Object); // Act manager.FindEducationPlans(new EducationPlanSearch()); // Assert educationPlanDataMapperMock.Verify(dataMapper => dataMapper.Find(It.IsAny <Func <EducationPlan, bool> >())); }
public void GenerateWordFile_EducationPlanConverter_Called() { // Arrange var courses = new Collection <RestEducationPlanCourse> { new RestEducationPlanCourse { Code = "2NETARCH" }, new RestEducationPlanCourse { Code = "ADCSB" }, }; var educationPlanDataMapperMock = new Mock <IEducationPlanDataMapper>(MockBehavior.Strict); var moduleDataMapperMock = new Mock <IDataMapper <Module> >(MockBehavior.Strict); moduleDataMapperMock.Setup(dataMapper => dataMapper.FindAll()).Returns(GetDummyDataModules()); var educationPlanConverterMock = new Mock <IEducationPlanConverter>(MockBehavior.Strict); educationPlanConverterMock.Setup(converter => converter.GenerateWord(It.IsAny <EducationPlan>())).Returns("path"); var educationPlanOutputterMock = new Mock <IEducationPlanOutputter>(MockBehavior.Strict); var plannerMock = new Mock <IPlanner>(MockBehavior.Strict); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); var profileDataMapperMock = new Mock <IDataMapper <CourseProfile> >(MockBehavior.Strict); EducationPlanManager manager = new EducationPlanManager(courseServiceMock.Object, plannerMock.Object, educationPlanOutputterMock.Object, profileDataMapperMock.Object, educationPlanDataMapperMock.Object, educationPlanConverterMock.Object, moduleDataMapperMock.Object); // Act var result = manager.GenerateWordFile(GetDummyEducationPlan()); // Assert Assert.AreEqual("path", result); educationPlanConverterMock.Verify(converter => converter.GenerateWord(It.IsAny <EducationPlan>())); }
public void GenerateEducationPlan_IntegrationTest() { // Arrange var courses = new Collection <RestEducationPlanCourse> { new RestEducationPlanCourse { Code = "2NETARCH" } }; RestEducationPlan restEducationPlan = GetDummyRestEducationPlan(courses); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); courseServiceMock.Setup(service => service.FindCourses(new List <string> { "2NETARCH" })).Returns( new List <Integration.Course>() { CreateNewIntegrationCourseWithTwoCourseImplementations("2NETARCH", 1, new Collection <DateTime> { new DateTime(2017, 1, 2), new DateTime(2017, 1, 3), new DateTime(2017, 1, 4) }, new Collection <DateTime> { new DateTime(2017, 3, 6), new DateTime(2017, 3, 7), new DateTime(2017, 3, 8) }) }); var dalConfig = DalConfiguration.Configuration; IEducationPlanManager manager = new EducationPlanManager(dalConfig.ProfilePath, courseServiceMock.Object, dalConfig.ManagementPropertiesPath, dalConfig.EducationPlanPath, dalConfig.EducationPlanUpdatedPath, dalConfig.ModulePath); // Act var result = manager.GenerateEducationPlan(restEducationPlan, null); // Assert courseServiceMock.Verify(service => service.FindCourses(new List <string> { "2NETARCH" })); Assert.AreEqual(7, result.PlannedCourses.Count()); Assert.AreEqual(6, result.NotPlannedCourses.Count()); Assert.AreEqual("OLC1", result.PlannedCourses.ElementAt(0).Code); Assert.AreEqual(new DateTime(2016, 12, 5), result.PlannedCourses.ElementAt(0).Date); Assert.AreEqual(5, result.PlannedCourses.ElementAt(0).Days); Assert.AreEqual("OLC2", result.PlannedCourses.ElementAt(1).Code); Assert.AreEqual(new DateTime(2016, 12, 12), result.PlannedCourses.ElementAt(1).Date); Assert.AreEqual(5, result.PlannedCourses.ElementAt(1).Days); Assert.AreEqual("OLC3", result.PlannedCourses.ElementAt(2).Code); Assert.AreEqual(new DateTime(2016, 12, 19), result.PlannedCourses.ElementAt(2).Date); Assert.AreEqual(5, result.PlannedCourses.ElementAt(2).Days); Assert.AreEqual("OLC4", result.PlannedCourses.ElementAt(3).Code); Assert.AreEqual(new DateTime(2016, 12, 26), result.PlannedCourses.ElementAt(3).Date); Assert.AreEqual(5, result.PlannedCourses.ElementAt(3).Days); Assert.AreEqual("2NETARCH", result.PlannedCourses.ElementAt(4).Code); Assert.AreEqual(new DateTime(2017, 1, 2), result.PlannedCourses.ElementAt(4).Date); Assert.AreEqual(3, result.PlannedCourses.ElementAt(4).Days); Assert.AreEqual("OLC5", result.PlannedCourses.ElementAt(5).Code); Assert.AreEqual(new DateTime(2017, 1, 5), result.PlannedCourses.ElementAt(5).Date); Assert.AreEqual(2, result.PlannedCourses.ElementAt(5).Days); Assert.AreEqual("OLC6", result.PlannedCourses.ElementAt(6).Code); Assert.AreEqual(new DateTime(2017, 1, 9), result.PlannedCourses.ElementAt(6).Date); Assert.AreEqual(3, result.PlannedCourses.ElementAt(6).Days); }
public void GenerateEducationPlan_Planner_Outputter_Service_DAL_Called() { // Arrange var courses = new Collection <RestEducationPlanCourse> { new RestEducationPlanCourse { Code = "2NETARCH" }, new RestEducationPlanCourse { Code = "ADCSB" }, }; var moduleDataMapperMock = new Mock <IDataMapper <Module> >(MockBehavior.Strict); moduleDataMapperMock.Setup(dataMapper => dataMapper.FindAll()).Returns(GetDummyDataModules()); var educationPlanConverterMock = new Mock <IEducationPlanConverter>(MockBehavior.Strict); var educationPlanDataMapperMock = new Mock <IEducationPlanDataMapper>(MockBehavior.Strict); var educationPlanOutputterMock = new Mock <IEducationPlanOutputter>(MockBehavior.Strict); educationPlanOutputterMock.Setup(planner => planner.GenerateEducationPlan(It.IsAny <EducationPlanData>())).Returns(GetDummyEducationPlan()); var plannerMock = new Mock <IPlanner>(MockBehavior.Strict); plannerMock.Setup(planner => planner.PlanCoursesWithOlc(It.IsAny <IEnumerable <OpleidingsplanGenerator.Models.Course> >())); plannerMock.SetupSet(planner => planner.StartDate = GetDummyRestEducationPlan(courses).InPaymentFrom).Verifiable(); plannerMock.SetupSet(planner => planner.EndDate = GetDummyRestEducationPlan(courses).EmployableFrom).Verifiable(); plannerMock.SetupSet(planner => planner.BlockedDates = It.IsAny <Collection <DateTime> >()).Verifiable(); plannerMock.SetupGet(planner => planner.AllCourses).Returns(GetDummyGeneratorCourses()); plannerMock.Setup(planner => planner.AddModules(It.IsAny <IEnumerable <Module> >())); var courseServiceMock = new Mock <ICourseService>(MockBehavior.Strict); courseServiceMock.Setup(service => service.FindCourses(new List <string> { "2NETARCH", "ADCSB" })).Returns( new List <Integration.Course>() { CreateNewIntegrationCourseWithTwoCourseImplementations("2NETARCH", 1, new Collection <DateTime> { new DateTime(2017, 1, 2), new DateTime(2017, 1, 3), new DateTime(2017, 1, 4) }, new Collection <DateTime> { new DateTime(2017, 3, 6), new DateTime(2017, 3, 7), new DateTime(2017, 3, 8) }) }); var profileDataMapperMock = new Mock <IDataMapper <CourseProfile> >(MockBehavior.Strict); profileDataMapperMock.Setup(dataMapper => dataMapper.FindById(1)).Returns(GetDummyDataProfiles().First()); var dalConfig = DalConfiguration.Configuration; EducationPlanManager manager = new EducationPlanManager(courseServiceMock.Object, plannerMock.Object, educationPlanOutputterMock.Object, profileDataMapperMock.Object, educationPlanDataMapperMock.Object, educationPlanConverterMock.Object, moduleDataMapperMock.Object); RestEducationPlan educationPlan = GetDummyRestEducationPlan(courses); // Act var result = manager.GenerateEducationPlan(educationPlan, null); // Assert educationPlanOutputterMock.Verify(outputter => outputter.GenerateEducationPlan(It.IsAny <EducationPlanData>())); plannerMock.Verify(planner => planner.PlanCoursesWithOlc(It.IsAny <IEnumerable <OpleidingsplanGenerator.Models.Course> >())); courseServiceMock.Verify(outputter => outputter.FindCourses(new List <string> { "2NETARCH", "ADCSB" })); profileDataMapperMock.Verify(dataMapper => dataMapper.FindById(1)); plannerMock.VerifySet(planner => planner.StartDate = GetDummyRestEducationPlan(courses).InPaymentFrom); plannerMock.VerifySet(planner => planner.BlockedDates = It.IsAny <Collection <DateTime> >()); moduleDataMapperMock.Verify(dataMapper => dataMapper.FindAll()); }