public void CreateOrdersFromPendingItems_ValidPendingOrderItems_OrdersCreated() { var dispatcher = MockRepository.GenerateMock <IQueueDispatcher <IMessage> >(); var userRepository = new UserAccountRepository(); var user = userRepository.GetByEmail("*****@*****.**", false); var userContext = new TestUserContext(user); var orderRepository = new OrderRepository(); var orderItemRepository = new OrderItemRepository(); var supplierRepository = new SupplierRepository(); var jobRepository = new JobRepository(); var jobItemRepository = new JobItemRepository(); var listItemRepository = new ListItemRepository(); var currencyRepository = new CurrencyRepository(); var entityIdProvider = new DirectEntityIdProvider(); var instrumentRepository = new InstrumentRepository(); var companyDetailsRepository = new CompanyDetailsRepository(); var consignmentRepository = new ConsignmentRepository(); var supplier1Id = Guid.NewGuid(); var supplier2Id = Guid.NewGuid(); var supplier3Id = Guid.NewGuid(); var job1Id = Guid.NewGuid(); var job2Id = Guid.NewGuid(); var job3Id = Guid.NewGuid(); var jobItem1Id = Guid.NewGuid(); var jobItem2Id = Guid.NewGuid(); var jobItem3Id = Guid.NewGuid(); var jobItem4Id = Guid.NewGuid(); var jobItem5Id = Guid.NewGuid(); var jobItem6Id = Guid.NewGuid(); var jobItem7Id = Guid.NewGuid(); CreateOrdersFromPendingItemsHelper.CreateContextForPendingItemTests( job1Id, job2Id, job3Id, supplier1Id, supplier2Id, supplier3Id, jobItem1Id, jobItem2Id, jobItem3Id, jobItem4Id, jobItem5Id, jobItem6Id, jobItem7Id); var instrumentService = new InstrumentService(userContext, instrumentRepository, dispatcher); var listItemService = new ListItemService(userContext, listItemRepository, dispatcher); var jobItemService = new JobItemService(userContext, jobRepository, jobItemRepository, listItemService, instrumentService, dispatcher); var orderItemService = new OrderItemService( userContext, orderRepository, orderItemRepository, supplierRepository, jobItemRepository, listItemRepository, dispatcher); orderItemService.CreatePending(Guid.NewGuid(), supplier1Id, "some description", 1, "partno", "instructions", 30, jobItem1Id, 29.99m, 0m); orderItemService.CreatePending(Guid.NewGuid(), supplier2Id, "some description", 1, "partno", "instructions", 30, jobItem2Id, 29.99m, 0m); orderItemService.CreatePending(Guid.NewGuid(), supplier1Id, "some description", 1, "partno", "instructions", 30, jobItem3Id, 29.99m, 0m); orderItemService.CreatePending(Guid.NewGuid(), supplier1Id, "some description", 1, "partno", "instructions", 30, jobItem4Id, 29.99m, 0m); orderItemService.CreatePending(Guid.NewGuid(), supplier2Id, "some description", 1, "partno", "instructions", 30, jobItem5Id, 29.99m, 0m); orderItemService.CreatePending(Guid.NewGuid(), supplier3Id, "some description", 1, "partno", "instructions", 30, jobItem6Id, 29.99m, 0m); orderItemService.CreatePending(Guid.NewGuid(), supplier3Id, "some description", 1, "partno", "instructions", 30, jobItem7Id, 29.99m, 0m); var orderService = new OrderService( userContext, orderRepository, consignmentRepository, supplierRepository, currencyRepository, entityIdProvider, orderItemService, companyDetailsRepository, dispatcher); orderService.CreateOrdersFromPendingItems(); var orders = orderService.GetOrders().OrderBy(o => o.OrderNo).ToList(); Assert.AreEqual(3, orders.Count); Assert.AreEqual("1", orders[0].OrderNo); Assert.AreEqual(supplier1Id, orders[0].Supplier.Id); Assert.AreEqual("2", orders[1].OrderNo); Assert.AreEqual(supplier2Id, orders[1].Supplier.Id); Assert.AreEqual("3", orders[2].OrderNo); Assert.AreEqual(supplier3Id, orders[2].Supplier.Id); var orderItems = orderItemService.GetOrderItems(orders[0].Id).OrderBy(oi => oi.ItemNo).ToList(); Assert.AreEqual(3, orderItems.Count); Assert.AreEqual(jobItem1Id, orderItems[0].JobItem.Id); // JR2000/1 Assert.AreEqual(jobItem3Id, orderItems[1].JobItem.Id); // JR2000/3 Assert.AreEqual(jobItem4Id, orderItems[2].JobItem.Id); // JR2001/1 orderItems = orderItemService.GetOrderItems(orders[1].Id).OrderBy(oi => oi.ItemNo).ToList(); Assert.AreEqual(2, orderItems.Count); Assert.AreEqual(jobItem2Id, orderItems[0].JobItem.Id); // JR2000/2 Assert.AreEqual(jobItem5Id, orderItems[1].JobItem.Id); // JR2001/2 orderItems = orderItemService.GetOrderItems(orders[1].Id).OrderBy(oi => oi.ItemNo).ToList(); Assert.AreEqual(2, orderItems.Count); Assert.AreEqual(jobItem6Id, orderItems[0].JobItem.Id); // JR2001/3 Assert.AreEqual(jobItem7Id, orderItems[1].JobItem.Id); // JR2002/1 Assert.AreEqual(0, orderItemService.GetPendingOrderItems().Count()); }
public void CreateConsignmentsFromPendingItems_ValidPendingConsignmentItems_ConsignmentsCreated() { var dispatcher = MockRepository.GenerateMock <IQueueDispatcher <IMessage> >(); var userRepository = new UserAccountRepository(); var user = userRepository.GetByEmail("*****@*****.**", false); var userContext = new TestUserContext(user); var consignmentRepository = new ConsignmentRepository(); var consignmentItemRepository = new ConsignmentItemRepository(); var supplierRepository = new SupplierRepository(); var jobRepository = new JobRepository(); var jobItemRepository = new JobItemRepository(); var listItemRepository = new ListItemRepository(); var entityIdProvider = new DirectEntityIdProvider(); var instrumentRepository = new InstrumentRepository(); var supplier1Id = Guid.NewGuid(); var supplier2Id = Guid.NewGuid(); var supplier3Id = Guid.NewGuid(); var job1Id = Guid.NewGuid(); var job2Id = Guid.NewGuid(); var job3Id = Guid.NewGuid(); var jobItem1Id = Guid.NewGuid(); var jobItem2Id = Guid.NewGuid(); var jobItem3Id = Guid.NewGuid(); var jobItem4Id = Guid.NewGuid(); var jobItem5Id = Guid.NewGuid(); var jobItem6Id = Guid.NewGuid(); var jobItem7Id = Guid.NewGuid(); CreateConsignmentsFromPendingItemsHelper.CreateContextForPendingItemTests( job1Id, job2Id, job3Id, supplier1Id, supplier2Id, supplier3Id, jobItem1Id, jobItem2Id, jobItem3Id, jobItem4Id, jobItem5Id, jobItem6Id, jobItem7Id); var instrumentService = new InstrumentService(userContext, instrumentRepository, dispatcher); var listItemService = new ListItemService(userContext, listItemRepository, dispatcher); var jobItemService = new JobItemService(userContext, jobRepository, jobItemRepository, listItemService, instrumentService, dispatcher); var consignmentItemService = new ConsignmentItemService( userContext, consignmentRepository, consignmentItemRepository, jobItemRepository, new ListItemRepository(), supplierRepository, dispatcher); _consignmentService = new ConsignmentService(userContext, consignmentRepository, supplierRepository, new DirectEntityIdProvider(), consignmentItemService, dispatcher); var jobItems = jobItemService.GetJobItems(job1Id).OrderBy(ji => ji.ItemNo).ToList(); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[0].Id, supplier1Id, "for cal"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[1].Id, supplier2Id, "for repair"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[2].Id, supplier1Id, "for cal"); jobItems = jobItemService.GetJobItems(job2Id).OrderBy(ji => ji.ItemNo).ToList(); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[0].Id, supplier1Id, "for cal"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[1].Id, supplier2Id, "for repair"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[2].Id, supplier3Id, "for cal"); jobItems = jobItemService.GetJobItems(job3Id).OrderBy(ji => ji.ItemNo).ToList(); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[0].Id, supplier3Id, "for cal"); var consignmentService = new ConsignmentService(userContext, consignmentRepository, supplierRepository, entityIdProvider, consignmentItemService, dispatcher); consignmentService.CreateConsignmentsFromPendingItems(); var consignments = consignmentService.GetConsignments().OrderBy(c => c.ConsignmentNo).ToList(); Assert.AreEqual(3, consignments.Count); Assert.AreEqual("1", consignments[0].ConsignmentNo); Assert.AreEqual(supplier1Id, consignments[0].Supplier.Id); Assert.AreEqual("2", consignments[1].ConsignmentNo); Assert.AreEqual(supplier2Id, consignments[1].Supplier.Id); Assert.AreEqual("3", consignments[2].ConsignmentNo); Assert.AreEqual(supplier3Id, consignments[2].Supplier.Id); var consignmentItems = consignmentItemService.GetConsignmentItems(consignments[0].Id).OrderBy(ci => ci.ItemNo).ToList(); Assert.AreEqual(3, consignmentItems.Count); Assert.AreEqual(jobItem1Id, consignmentItems[0].JobItem.Id); // JR2000/1 Assert.AreEqual(jobItem3Id, consignmentItems[1].JobItem.Id); // JR2000/3 Assert.AreEqual(jobItem4Id, consignmentItems[2].JobItem.Id); // JR2001/1 consignmentItems = consignmentItemService.GetConsignmentItems(consignments[1].Id).OrderBy(ci => ci.ItemNo).ToList(); Assert.AreEqual(2, consignmentItems.Count); Assert.AreEqual(jobItem2Id, consignmentItems[0].JobItem.Id); // JR2000/2 Assert.AreEqual(jobItem5Id, consignmentItems[1].JobItem.Id); // JR2001/2 consignmentItems = consignmentItemService.GetConsignmentItems(consignments[2].Id).OrderBy(ci => ci.ItemNo).ToList(); Assert.AreEqual(2, consignmentItems.Count); Assert.AreEqual(jobItem6Id, consignmentItems[0].JobItem.Id); // JR2001/3 Assert.AreEqual(jobItem7Id, consignmentItems[1].JobItem.Id); // JR2002/1 Assert.AreEqual(0, consignmentItemService.GetPendingItems().Count()); }
public static void CreateContextForPendingItemTests( Guid job1Id, Guid job2Id, Guid job3Id, Guid supplier1Id, Guid supplier2Id, Guid supplier3Id, Guid jobItem1Id, Guid jobItem2Id, Guid jobItem3Id, Guid jobItem4Id, Guid jobItem5Id, Guid jobItem6Id, Guid jobItem7Id) { var dispatcher = MockRepository.GenerateMock <IQueueDispatcher <IMessage> >(); var userRepository = new UserAccountRepository(); var user = userRepository.GetByEmail("*****@*****.**", false); var userContext = new TestUserContext(user); var consignmentRepository = new ConsignmentRepository(); var consignmentItemRepository = new ConsignmentItemRepository(); var supplierRepository = new SupplierRepository(); var jobRepository = new JobRepository(); var jobItemRepository = new JobItemRepository(); var listItemRepository = new ListItemRepository(); var customerRepository = new CustomerRepository(); var entityIdProvider = new DirectEntityIdProvider(); var instrumentRepository = new InstrumentRepository(); var instrumentId = Guid.NewGuid(); var instrumentService = new InstrumentService(userContext, instrumentRepository, dispatcher); instrumentService.Create(instrumentId, "Druck", "DPI601IS", "None", "Description", 0); var customerId = Guid.NewGuid(); var customerService = new CustomerService(userContext, customerRepository, dispatcher); customerService.Create(customerId, "Gael Ltd", String.Empty, new Address(), new ContactInfo(), "Gael Ltd", new Address(), new ContactInfo(), "Gael Ltd", new Address(), new ContactInfo()); var supplierService = new SupplierService(userContext, supplierRepository, dispatcher); supplierService.Create(supplier1Id, "Supplier 1", new Address(), new ContactInfo(), new Address(), new ContactInfo()); supplierService.Create(supplier2Id, "Supplier 2", new Address(), new ContactInfo(), new Address(), new ContactInfo()); supplierService.Create(supplier3Id, "Supplier 3", new Address(), new ContactInfo(), new Address(), new ContactInfo()); var listItemService = new ListItemService(userContext, listItemRepository, dispatcher); var jobService = new JobService(userContext, null, jobRepository, listItemRepository, customerRepository, entityIdProvider, dispatcher); jobService.CreateJob(job1Id, "some instructions", "order no", "advice no", listItemService.GetAllByCategory(ListItemCategoryType.JobType).First().Id, customerId, "notes", "contact"); jobService.CreateJob(job2Id, "some instructions", "order no", "advice no", listItemService.GetAllByCategory(ListItemCategoryType.JobType).First().Id, customerId, "notes", "contact"); jobService.CreateJob(job3Id, "some instructions", "order no", "advice no", listItemService.GetAllByCategory(ListItemCategoryType.JobType).First().Id, customerId, "notes", "contact"); var jobItemService = new JobItemService(userContext, jobRepository, jobItemRepository, listItemService, instrumentService, dispatcher); jobItemService.CreateJobItem( job1Id, jobItem1Id, instrumentId, "12345", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobItemService.CreateJobItem( job1Id, jobItem2Id, instrumentId, "123456", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobItemService.CreateJobItem( job1Id, jobItem3Id, instrumentId, "123457", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobItemService.CreateJobItem( job2Id, jobItem4Id, instrumentId, "12345", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobItemService.CreateJobItem( job2Id, jobItem5Id, instrumentId, "123456", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobItemService.CreateJobItem( job2Id, jobItem6Id, instrumentId, "1234567", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobItemService.CreateJobItem( job3Id, jobItem7Id, instrumentId, "12345", String.Empty, listItemService.GetAllByCategory(ListItemCategoryType.JobItemInitialStatus).First().Id, listItemService.GetAllByCategory(ListItemCategoryType.JobItemCategory).First().Id, 12, "instructions", String.Empty, false, String.Empty, String.Empty); jobService.ApproveJob(job1Id); jobService.ApproveJob(job2Id); jobService.ApproveJob(job3Id); }