public void CallingMethod_HitsTheSaveHeaderMethodOnce() { // arrange bool fakeActive = true; UserSelectedContext fakeCustomer = new UserSelectedContext(); int fakeId = 1; string fakeName = "fake name"; UserProfile fakeUser = new UserProfile(); MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 1; // act long results = logic.CreateOrUpdateList(fakeUser, fakeCustomer, fakeId, fakeName, fakeActive); // assert mockDependents.MockHeaderRepo .Verify(h => h.SaveCustomListHeader(It.IsAny <CustomListHeader>()), Times.Once); }
public void GoodCustomerIdAndBranchHeaderOnlyFalse_ReturnsExpectedNumberOfItems() { // arrange MockDependents mockDependants = new MockDependents(); IRemindersListLogic testunit = MakeTestsLogic(true, ref mockDependants); UserSelectedContext testcontext = new UserSelectedContext { BranchId = "FUT", CustomerId = "123456" }; UserProfile fakeUser = new UserProfile(); int expected = 1; bool headerOnly = false; // act ListModel results = testunit.ReadList(fakeUser, testcontext, headerOnly); // assert results.Items .Count .Should() .Be(expected); }
public void BadHeaderId_ReturnsNull() { // arrange int headerId = 157; UserSelectedContext customer = new UserSelectedContext { BranchId = "FUT", CustomerId = "123456" }; UserProfile user = new UserProfile { UserId = new Guid("9615ef5f-fa2a-4497-a59f-69f34cbe6921") }; MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // act ListModel results = logic.GetListModel(user, customer, headerId); // assert results.Should() .BeNull(); }
public void CallingMethod_HitsTheSaveHeaderMethodOnce() { // arrange UserSelectedContext fakeCustomer = new UserSelectedContext(); ListModel fakeList = new ListModel { ListId = 1, Name = "Fake Name" }; UserProfile fakeUser = new UserProfile(); MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 1; // act logic.DeleteList(fakeUser, fakeCustomer, fakeList); // assert mockDependents.MockHeaderRepo.Verify(h => h.SaveCustomListHeader(It.IsAny <CustomListHeader>()), Times.Once); }
public void NewHeader_ReturnsTheNextAvailableHeaderId() { // arrange bool fakeActive = true; UserSelectedContext fakeCustomer = new UserSelectedContext(); int fakeId = 0; string fakeName = "fake name"; UserProfile fakeUser = new UserProfile(); MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 1; // act long results = logic.CreateOrUpdateList(fakeUser, fakeCustomer, fakeId, fakeName, fakeActive); // assert results.Should() .Be(expected); }
public void GoodCustomerIdAndBranch_ReturnsListWithInListItemsAndInHistoryTrue() { // arrange IHistoryListLogic testunit = MakeTestsObject(); UserSelectedContext testcontext = new UserSelectedContext { BranchId = "FUT", CustomerId = "123456" }; List <string> InList = new List <string> { "123456" }; bool expected = true; // act List <InHistoryReturnModel> results = testunit.ItemsInHistoryList(testcontext, InList); // assert results.First() .InHistory .Should() .Be(expected); }
public void CallWith2ListsInCollection_CallsCacheRepositoryRemoveItem10Times() { // arrange var mockDependents = new MockDependents(); ICacheListLogic testunit = MakeTestsLogic(false, ref mockDependents); var testContext = new UserSelectedContext { BranchId = "FUT", CustomerId = "234567" }; var fakeUser = new UserProfile(); var testLists = new List <ListModel> { new ListModel { BranchId = "FUT", CustomerNumber = "123456", Type = ListType.Contract, ListId = 5 }, new ListModel { BranchId = "FUT", CustomerNumber = "123456", Type = ListType.Favorite, ListId = 5 } }; // act testunit.ClearCustomersListCaches(fakeUser, testContext.CustomerId, testContext.BranchId, testLists); // assert mockDependents.CacheRepository.Verify(m => m.RemoveItem(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(10), "not called"); }
public void WhenGettingInvoiceCustomersWhenForAllCustomersIsTrue_ResultingInvoiceCustomersCountIsOne() { // arrange MockDependents mockDependents = new MockDependents(); IOnlinePaymentsLogic testunit = MakeTestsLogic(useAutoFac: true, mockDependents: ref mockDependents); var testUser = new UserProfile(); var testContext = new UserSelectedContext { BranchId = "XXXXX", CustomerId = "111111" }; var testPaging = new PagingModel() { Sort = new List <SortInfo>() { new SortInfo() { Field = "invoiceamount", Order = "desc" } } }; var testAllCustomers = true; BEKConfiguration.Add( "WebNowUrl", "http://invoice.benekeith.com/webnow/index.jsp?action=filter&username=anonymous&drawer={branch}AR501&tab={customer}&field4={invoice}"); var expected = 1; // act var result = testunit.GetInvoiceCustomers(testUser, testContext, testPaging, testAllCustomers); BEKConfiguration.Reset(); // assert result.customers.Count .Should() .Be(expected); }
public void GoodHeader_SavesCorrectBranchId() { // arrange string expected = "FRT"; UserSelectedContext context = new UserSelectedContext() { CustomerId = "200321", BranchId = "FRT" }; NotesListHeader header = MakeHeader(); INotesHeadersListRepository repo = MakeRepo(); // act var headerId = repo.Save(header); var results = repo.GetHeadersForCustomer(context); // assert results.BranchId .Should() .Be(expected); }
public void GoodHeader_DoesNotUseSetCreatedUtc() { // arrange UserSelectedContext context = new UserSelectedContext() { CustomerId = "200321", BranchId = "FRT" }; DateTime expected = new DateTime(2017, 6, 30, 16, 32, 0, DateTimeKind.Utc); NotesListHeader header = MakeHeader(); INotesHeadersListRepository repo = MakeRepo(); // act var headerId = repo.Save(header); var results = repo.GetHeadersForCustomer(context); // assert results.CreatedUtc .Should() .NotBe(expected); }
public CustomInventoryImportModel ImportCustomInventory (UserProfile user, UserSelectedContext catalogInfo, CustomInventoryImportFileModel file) { try { CustomInventoryImportModel importReturn = new CustomInventoryImportModel(); List <CustomInventoryItem> items = parseListDelimited(file, CSV_DELIMITER, user, catalogInfo); _customInventoryRepo.SaveRange(items); importReturn.Success = true; return(importReturn); } catch (Exception ex) { eventLogRepository.WriteErrorLog (string.Format("Custom Inventory Import Error for Customer {0}", catalogInfo.CustomerId), ex); SendErrorEmail(file, ex); return(new CustomInventoryImportModel { Success = false, ErrorMessage = "An error has occurred while processing the import file" }); } }
public void GoodCustomerWithoutDetails_ReturnsExpectedCountOfTwo() { // arrange UserSelectedContext customer = new UserSelectedContext { BranchId = "FUT", CustomerId = "123456" }; UserProfile user = new UserProfile(); MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 2; // act List <ListModel> results = logic.ReadLists(user, customer, true); // assert results.Count .Should() .Be(expected); }
public void CustomerWithNoSharedList_DoesNotSeeList() { // arrange UserSelectedContext customer = new UserSelectedContext { BranchId = "FUT", CustomerId = "222222" }; UserProfile user = new UserProfile(); MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 0; // act List <ListModel> results = logic.ReadLists(user, customer, false); // assert results.Count .Should() .Be(expected); }
public void BadCustomerIdWithDetails_ReturnsListWithNoHeaders() { // arrange UserSelectedContext customer = new UserSelectedContext { BranchId = "FUT", CustomerId = "999999" }; UserProfile user = new UserProfile(); MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 0; // act List <ListModel> results = logic.ReadLists(user, customer, false); // assert results.Count .Should() .Be(expected); }
public void GoodHeaderIdWithoutItems_ReturnsExpectedListModel() { // arrange int headerId = 1; UserSelectedContext userSelectedContext = new UserSelectedContext { BranchId = "FUT", CustomerId = "123456" }; MockDependents mockDependents = new MockDependents(); ICustomListLogic logic = MakeMockLogic(mockDependents); // expect int expected = 1; // act ListModel result = logic.ReadList(headerId, userSelectedContext, true); // assert result.ListId .Should() .Be(expected); }
public void BadCustomer_CallsGetCustomersTwice() { // arrange var repo = MockCustomerRepo(); var logic = MakeLogic(customerRepository: repo.Object); var context = new UserSelectedContext() { BranchId = "FDF", CustomerId = "999999" }; var expected = 2; BEKConfiguration.Add("CampaignImagesUrl", "http://test/"); // act var test = logic.GetAllAvailableCampaigns(context); BEKConfiguration.Reset(); // assert repo.Verify(r => r.GetAllCustomersByCampaign(It.IsAny <long>()), Times.Exactly(expected)); }
public void GoodCustomer_CallsGetAllheadersOnce() { // arrange var repo = MockHeaderRepo(); var logic = MakeLogic(headerRepo: repo.Object); var context = new UserSelectedContext() { BranchId = "FDF", CustomerId = "123456" }; var expected = 1; BEKConfiguration.Add("CampaignImagesUrl", "http://test/"); // act var test = logic.GetAllAvailableCampaigns(context); BEKConfiguration.Reset(); // assert repo.Verify(r => r.GetAll(), Times.Exactly(expected)); }
public void GoodHeader_DoesNotUseSetModifiedUtc() { // arrange DateTime expected = new DateTime(2017, 6, 30, 16, 33, 0, DateTimeKind.Utc); UserSelectedContext context = new UserSelectedContext() { CustomerId = "200321", BranchId = "FRT" }; MandatoryItemsListHeader header = MakeHeader(); IMandatoryItemsListHeadersRepository repo = MakeRepo(); // act var headerId = repo.SaveMandatoryItemsHeader(header); var results = repo.GetListHeaderForCustomer(context); // assert results.ModifiedUtc .Should() .NotBe(expected); }
public void GoodHeader_SavesCorrectCustomerNumber() { // arrange string expected = "200321"; UserSelectedContext context = new UserSelectedContext() { CustomerId = "200321", BranchId = "FRT" }; MandatoryItemsListHeader header = MakeHeader(); IMandatoryItemsListHeadersRepository repo = MakeRepo(); // act var headerId = repo.SaveMandatoryItemsHeader(header); var results = repo.GetListHeaderForCustomer(context); // assert results.CustomerNumber .Should() .Be(expected); }
/// <summary> /// /// </summary> /// <param name="user"></param> /// <param name="context"></param> /// <param name="exportRequest"></param> /// <param name="invoiceNumber"></param> /// <param name="contractdictionary"></param> /// <returns></returns> public List <InvoiceItemModel> GetExportableInvoiceItems(UserProfile user, UserSelectedContext context, ExportRequestModel exportRequest, string invoiceNumber, Dictionary <string, string> contractdictionary) { if (exportRequest.Fields != null) { _exportLogic.SaveUserExportSettings(user.UserId, Core.Models.Configuration.EF.ExportType.InvoiceDetail, KeithLink.Svc.Core.Enumerations.List.ListType.Custom, exportRequest.Fields, exportRequest.SelectedType); } Order order = _orderLogic.GetOrder(context.BranchId, invoiceNumber); List <InvoiceItemModel> items = order.Items.Select(i => i.ToInvoiceItem()).ToList(); items = items.Select(i => _invLogic.AssignContractCategory(contractdictionary, i)).ToList(); return(items); }
public void AnyCall_CallsCacheRepositoryAddItem() { // arrange var mockDependents = new MockDependents(); ICacheListLogic testunit = MakeTestsLogic(false, ref mockDependents); var testContext = new UserSelectedContext { BranchId = "FUT", CustomerId = "234567" }; var lists = new List <string>(); // act testunit.AddCachedLabels(testContext, lists); // assert mockDependents.CacheRepository.Verify(m => m.AddItem(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TimeSpan>(), It.IsAny <List <string> >()), Times.Exactly(2), "not called"); }
public Guid ImportFromPowerMenu(VendorPurchaseOrderRequest powerMenuRequest) { UserProfile user = _profileLogic.GetUserProfile(powerMenuRequest.Login.Username).UserProfiles.FirstOrDefault(); Core.Models.ShoppingCart.ShoppingCart newCart = new Core.Models.ShoppingCart.ShoppingCart(); newCart.Items = new List <ShoppingCartItem>(); // Get the customer information needed List <Customer> customers = _customerRepo.GetCustomersForUser(user.UserId); Customer customer = customers.Distinct() .Where(x => x.CustomerNumber.Equals(powerMenuRequest.Order.OrderHeader.CustomerNumber) && x.IsPowerMenu.Equals(true) ) .FirstOrDefault(); // Set the selected user context UserSelectedContext context = new UserSelectedContext(); context.BranchId = customer.CustomerBranch; context.CustomerId = customer.CustomerNumber; // Build the generated cart newCart.BranchId = customer.CustomerBranch; newCart.PONumber = string.Format("eMenuManage Order {0} ", powerMenuRequest.Order.OrderHeader.PurchaseOrderNumber); newCart.Name = string.Format("eMenuManage Order - {0}", DateTime.Now.ToString()); List <ShoppingCartItem> shoppingCartItems = powerMenuRequest.Order.OrderItem.ToShoppingCartItems(context.BranchId.ToLower()); newCart.Items.AddRange(shoppingCartItems); ShipDateReturn validDates = _shipDateRepository.GetShipDates(context); newCart.RequestedShipDate = validDates.ShipDates.FirstOrDefault().Date; return(_shoppingCartLogic.CreateCart(user, context, newCart)); }
public Dictionary <string, int> GetHitsForCatalogs(UserSelectedContext catalogInfo, string search, SearchInputModel searchModel) { List <ExportExternalCatalog> externalCatalog = _externalCatalogRepository.ReadExternalCatalogs().ToList(); var listOfCatalogs = externalCatalog.Select(x => x.Type).Distinct().ToList(); listOfCatalogs.Add("BEK"); var baseCatalogTypeIndex = listOfCatalogs.IndexOf(searchModel.CatalogType); if (baseCatalogTypeIndex != -1) { listOfCatalogs.RemoveAt(baseCatalogTypeIndex); } var nonSortingSearchModel = new SearchInputModel { CatalogType = searchModel.CatalogType, Dept = searchModel.Dept, Facets = BlockSpecialFiltersInFacets(searchModel.Facets), From = searchModel.From, Size = 1, //This will minimize number returned from elastic search to minimize processing for only count }; var hitCounts = new Dictionary <string, int>(); foreach (var catalog in listOfCatalogs) { var catalogTempInfo = new UserSelectedContext(); catalogTempInfo.CustomerId = catalogInfo.CustomerId; catalogTempInfo.BranchId = GetBranchId(catalogInfo.BranchId, catalog); var hitCount = _catalogRepository.GetHitsForSearchInIndex(catalogTempInfo, search, nonSortingSearchModel); hitCounts.Add(catalog.ToLower(), hitCount); } return(hitCounts); }
public ListModel SaveList(UserProfile user, UserSelectedContext catalogInfo, ListModel list) { ReminderItemsListHeader header = _headersRepo.GetReminderItemsHeader(catalogInfo); if (header == null) { if (list.Items.Count == 0) { ReminderItemsListHeader model = new ReminderItemsListHeader() { BranchId = catalogInfo.BranchId, CustomerNumber = catalogInfo.CustomerId }; _headersRepo.SaveReminderListHeader(model); } else { foreach (var item in list.Items) { ReminderItemsListDetail detail = item.ToReminderItemsListDetail(0); detail.Active = !item.IsDelete; Save(catalogInfo, detail); } } } else { foreach (var item in list.Items) { ReminderItemsListDetail detail = item.ToReminderItemsListDetail(header.Id); detail.Active = !item.IsDelete; Save(catalogInfo, detail); } } return(GetListModel(user, catalogInfo, 0)); }
private (string Name, string EmailAddress) GetTarget(UserSelectedContext userContext, UserProfile user, Audience audience) { (string Name, string EmailAddress)target; switch (audience) { case Audience.Support: target = (audience.ToString(), "*****@*****.**"); break; case Audience.BranchSupport: var branch = GetBranch(userContext); target = (branch.BranchName, branch.Email); break; case Audience.SalesRep: var customer = GetCustomer(userContext, user); target = (customer.Dsr.Name, customer.Dsr.EmailAddress); break; case Audience.User: target = (user.Name, user.EmailAddress); break; default: target = (audience.ToString(), "*****@*****.**"); break; } // Route feedback to originating user when not in production if (Common.Impl.Configuration.IsProduction == false) { target = ("non-production user", AuthenticatedUser.EmailAddress); } return(target); }
/// <summary> /// Gets just the primary order details needed without the excess of item details or invoice status /// </summary> /// <param name="customerInfo"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> private List <Order> GetShallowOrderDetailInDateRange(UserSelectedContext customerInfo, DateTime startDate, DateTime endDate) { int numberOfDays = (endDate - startDate).Days + 1; var dateRange = Enumerable.Range(0, numberOfDays).Select(d => startDate.AddDays(d).ToLongDateFormat()); List <EF.OrderHistoryHeader> headers = _headerRepo.Read(h => h.BranchId.Equals(customerInfo.BranchId, StringComparison.InvariantCultureIgnoreCase) && h.CustomerNumber.Equals(customerInfo.CustomerId) && dateRange.Contains(h.DeliveryDate), i => i.OrderDetails) .ToList(); List <Order> orders = new List <Order>(); foreach (EF.OrderHistoryHeader h in headers) { Order order = h.ToOrder(); if (order.Items != null) { order.OrderTotal = order.Items.Sum(i => i.LineTotal); } orders.Add(order); } // Leaving this code commented out in case we need further performance increases //Parallel.ForEach( headers, new ParallelOptions { MaxDegreeOfParallelism = 2 }, h => { // Order order = h.ToOrder(); // if (order.Items != null) { // order.OrderTotal = order.Items.AsParallel().WithDegreeOfParallelism(2).Sum(i => i.LineTotal); // } // orders.Add( order ); //} ); return(orders); }
public void Save(UserSelectedContext catalogInfo, ReminderItemsListDetail model) { // try to find the parent header id if it is not in the model if (model.HeaderId == 0) { ReminderItemsListHeader header = _headersRepo.GetReminderItemsHeader(catalogInfo); if (header == null) { // create the header model.HeaderId = _headersRepo.SaveReminderListHeader(new ReminderItemsListHeader() { BranchId = catalogInfo.BranchId, CustomerNumber = catalogInfo.CustomerId }); } else { model.HeaderId = header.Id; } } _detailsRepo.SaveReminderListDetail(model); }
public ListModel SaveList(UserProfile user, UserSelectedContext catalogInfo, ListModel list) { MandatoryItemsListHeader header = _headersRepo.GetListHeaderForCustomer(catalogInfo); if (header == null) { foreach (var item in list.Items) { MandatoryItemsListDetail detail = item.ToMandatoryItemsListDetail(0); detail.Active = !item.IsDelete; SaveDetail(catalogInfo, detail); } } else { foreach (var item in list.Items) { MandatoryItemsListDetail detail = item.ToMandatoryItemsListDetail(header.Id); detail.Active = !item.IsDelete; SaveDetail(catalogInfo, detail); } } return(ReadList(user, catalogInfo, false)); }
public void GoodCustomer_ReturnsTwoRecords() { // arrange var logic = MakeLogic(); var context = new UserSelectedContext() { BranchId = "FDF", CustomerId = "123456" }; var expected = 2; BEKConfiguration.Add("CampaignImagesUrl", "http://test/"); // act var test = logic.GetAllAvailableCampaigns(context); BEKConfiguration.Reset(); // assert test.campaigns .Count .Should() .Be(expected); }
public void AnyCall_CallsCacheRepositoryAddItem() { // arrange var mockDependents = new MockDependents(); ICacheListLogic testunit = MakeTestsLogic(false, ref mockDependents); var testContext = new UserSelectedContext { BranchId = "FUT", CustomerId = "234567" }; var testtype = ListType.Contract; var list = new ListModel(); // act testunit.AddCachedSpecificList(testContext, testtype, 5, list); // assert mockDependents.CacheRepository.Verify(m => m.AddItem(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TimeSpan>(), It.IsAny <ListModel>()), Times.Once, "not called"); }