public void Build_ShouldCallTheFilterMetalOnTheRepositoryWithTheCorrectMediaType() { //Arrange var shoppingCart = MockRepository.GenerateStub<IShoppingCart>(); shoppingCart.Stub(x => x.Items).Return(new List<ICartItem>() { FakeJewelCartItem(Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID, Tests.SAMPLE_JEWEL_SIZE_725, JewelMediaType.YellowGold,Tests.NUMBER_HAS_NO_MEANING_IN_THIS_CONTEXT) }); shoppingCart.Stub(x => x.TotalPrice).Return(10000); var fakeJewel = new FakeJewelRepository(new FakeSettingManager()).GetJewelByID(Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID); var jewelryRepository = MockRepository.GenerateMock<IJewelRepository>(); jewelryRepository.Stub(x => x.GetJewelByID(Arg<int>.Is.Anything)).Return(fakeJewel); jewelryRepository.Expect(x => x.FilterMediaByMetal(Arg<JewelMediaType>.Is.Equal(JewelMediaType.YellowGold))) .Repeat.Once(); var diamondRepository = new FakeDiamondRepository(mapper); var cartItemViewModelBuilder = new CartItemViewModelBuilder(jewelryRepository, diamondRepository, mapper); var authentication = MockRepository.GenerateStub<IAuthentication>(); var builder = new ShoppingCartViewModelBuilder(shoppingCart, jewelryRepository, cartItemViewModelBuilder, authentication, mapper); //Act var viewModel = builder.Build(); //Assert jewelryRepository.VerifyAllExpectations(); }
public void DiamondsBySearchParameters_ShouldFilterResultsByColorButMoreThenOneColorSelected() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; searchParameters.ItemsPerPage = 10; searchParameters.Color = new List<string>() { "H","G" }; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(4); }
public void DiamondsBySearchParameters_ShouldFilterResultsByClarityButMoreThenOneClaritySelected() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; searchParameters.ItemsPerPage = 10; searchParameters.Clarity = new List <string>() { "VS1", "VVS1" }; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(3); }
public void Build_ShouldReturnAJavaScriptJsonInitializerWithReportForTheSearchInitBecauseItWasSpecifiedInTheRouteDic() { var customJewel = new CustomJewelPersistenceForDiamondSearch(); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); webHelpers.Stub(x => x.RouteUrl(Arg<string>.Is.Anything, Arg<RouteValueDictionary>.Is.Anything)).Return( Tests.STRING_THAT_HAS_NO_MEANING_IN_THIS_CONTEXT); customJewel.Report = Tests.STRING_THAT_IS_ASSERTED_BUT_HAS_NO_MEANING; var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(customJewel, diamondRepository, jewelRepository, webHelpers); var builder = new DiamondSearchViewModelBuilder(customJewel, tabsForJewelDesignBuilder); //Act var viewModel = builder.Build(); //Assert viewModel.JSONClientScriptInitializer["Report"].Should().Be(Tests.STRING_THAT_IS_ASSERTED_BUT_HAS_NO_MEANING); }
public void Build_DiamondTabShouldReturnModifyRouteAndCallTheRightRouteIfDiamondIsPresent() { //Arrange var customJewel = new CustomJewelPersistenceBase(); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateMock<IWebHelpers>(); var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); customJewel.DiamondID = FIRST_DIAMOND_IN_REP; webHelpers.Expect( x => x.RouteUrl(Arg<string>.Is.Equal("DiamondSearch"), Arg<RouteValueDictionary>.Matches(d => (int)d["DiamondID"] == customJewel.DiamondID && (int)d["SettingID"] == customJewel.SettingID))). Return("/JewelDesign/DiamondSearch").Repeat.Any(); var builder = new TabsForJewelDesignNavigationBuilder(customJewel, diamondRepository, jewelRepository, webHelpers); //Act var tabs = builder.Build(); //Assert tabs[0].ModifyRoute.Should().Be("/JewelDesign/DiamondSearch"); webHelpers.VerifyAllExpectations(); }
private SettingViewModelBuilder CreateDefaultSettingViewModelBuilderWithCustomModel(CustomJewelPersistenceForSetting customJewelForSetting) { var settingManager = new FakeSettingManager(); var jewelryRepository = new FakeJewelRepository(settingManager); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(customJewelForSetting, diamondRepository, jewelryRepository, webHelpers); var fakeRepository = new FakeJewelRepository(settingManager); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15421"); var fakeTestimonialRepository = new FakeTestimonialRepository(mapper); var jewelryItemViewModelBuilder = new JewelryItemViewModelBuilder(Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID, fakeRepository, fakeTestimonialRepository, fileSystem, mapper); var builder = new SettingViewModelBuilder(customJewelForSetting, tabsForJewelDesignBuilder, jewelryItemViewModelBuilder); return builder; }
private ShoppingCartViewModelBuilder CreateDefaultShoppingCartViewModelBuilderWithShoppingCartAsParameter(IShoppingCart shoppingCart) { var jewelryRepository = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var cartItemViewModelBuilder = new CartItemViewModelBuilder(jewelryRepository, diamondRepository, mapper); var authentication = MockRepository.GenerateStub<IAuthentication>(); var builder = new ShoppingCartViewModelBuilder(shoppingCart, jewelryRepository, cartItemViewModelBuilder, authentication, mapper); return builder; }
public void DiamondsBySearchParameters_ShouldReturnAllTheItemsInTheRepostoryWhenNoFiltersAreAskedForAndWeWantTheFirstPage() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; searchParameters.ItemsPerPage = 10; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(THE_TOTAL_NUMBER_OF_ITEMS); }
private EndViewModelBuilder CreateDefaultEditViewModelBuilderWithPresistenceAs(CustomJewelPersistenceInEndPage customJewelPersistenceInEndPage) { var diamondRepository = new FakeDiamondRepository(mapper); var jewelryRepository = new FakeJewelRepository(new SettingManager()); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(customJewelPersistenceInEndPage, diamondRepository, jewelryRepository, webHelpers); var builder = new EndViewModelBuilder(customJewelPersistenceInEndPage, tabsForJewelDesignBuilder, diamondRepository, jewelryRepository, mapper); return builder; }
private ShoppingCartViewModelBuilder CreateDefaultShoppingCartViewModelBuilderWithCustomAuthentication(IAuthentication authentication) { var jewelryRepository = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var shoppingCart = FakeFactory.ShoppingCartWith3Items(); var cartItemViewModelBuilder = new CartItemViewModelBuilder(jewelryRepository, diamondRepository, mapper); var builder = new ShoppingCartViewModelBuilder(shoppingCart, jewelryRepository, cartItemViewModelBuilder,authentication, mapper); return builder; }
public void DiamondsBySearchParameters_ShouldReturn1ItemOnPage2WhenPageSizeIs5() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 2; searchParameters.ItemsPerPage = 5; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(1); }
public void TotalPagesNumber_ShouldReturnTheTotalNumberOfPagesCorrectly() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; searchParameters.ItemsPerPage = 2; var diamondRepository = new FakeDiamondRepository(mapper); //Act diamondRepository.DiamondsBySearchParameters(searchParameters); var totalPages = diamondRepository.LastOporationTotalPages; //Assert totalPages.Should().Be(3); }
private ReviewOrderViewModelBuilder CreateDefaultReviewOrderViewModelBuilder() { var checkoutDetailsModel = DefaultCheckoutDetailsModel(); var shoppingCart = MockRepository.GenerateStub<IShoppingCart>(); shoppingCart.Stub(x => x.TotalPrice).Return(10000); shoppingCart.Stub(x => x.Items).Return(new List<ICartItem>() { FakeJewelCartItem(Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID, Tests.SAMPLE_JEWEL_SIZE_725, JewelMediaType.WhiteGold, (decimal) 9999.99) }); var jewelryRepository = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var cartItemViewModelBuilder = new CartItemViewModelBuilder(jewelryRepository, diamondRepository, mapper); var builder = new ReviewOrderViewModelBuilder(checkoutDetailsModel, shoppingCart, cartItemViewModelBuilder, mapper); return builder; }
private CartItemViewModelBuilder CartItemViewModelBuilderWithDiamondCartItem() { var jewelRepostory = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var builder = new CartItemViewModelBuilder(jewelRepostory, diamondRepository, mapper); return builder; }
private TabsForJewelDesignNavigationBuilder CreateDefaultTabsForJewelDesignBuilderWithPersistenceAsAParameter(CustomJewelPersistenceBase customJewel) { var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); var builder = new TabsForJewelDesignNavigationBuilder(customJewel, diamondRepository, jewelRepository, webHelpers); return builder; }
private TabsForJewelDesignNavigationBuilder CreateWithDiamondIDTabsForJewelDesignBuilder() { var customJewel = new CustomJewelPersistenceBase(); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); webHelpers.Stub(x => x.RouteUrl(Arg<string>.Is.Anything, Arg<RouteValueDictionary>.Is.Anything)).Return( "not important for this test"); customJewel.DiamondID = FIRST_DIAMOND_IN_REP; var builder = new TabsForJewelDesignNavigationBuilder(customJewel, diamondRepository, jewelRepository, webHelpers); return builder; }
public void DiamondsBySearchParameters_ShouldReturnOnly3ItemsOnPage2AsRequestedBySearchParams() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 2; searchParameters.ItemsPerPage = 3; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(3); }
private List<Diamond> GetDiamondCollectionUnSorted() { var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; var diamondRepository = new FakeDiamondRepository(mapper); //Act return diamondRepository.DiamondsBySearchParameters(searchParameters); }
public void TotalPagesNumber_ShouldSortByWeightInDescOrderWhenCalledAsPartOFTheSearchParams() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.OrderBy = new DynamicOrderBy("totalprice", "desc"); var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert var unsortedCollectio = GetDiamondCollectionUnSorted(); diamonds.Should().ContainInOrder(unsortedCollectio.OrderByDescending(x => x.Price).ToList()); }
private ShoppingCartItemsFactory CreateDefaultShoppingCartItemsFactory() { var jewelryRepository = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var factory = new ShoppingCartItemsFactory(jewelryRepository,diamondRepository); return factory; }
private OrderBuilder CreateDefaultOrderBuilder() { var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var shoppingCart = MockRepository.GenerateStub<IShoppingCart>(); shoppingCart.Stub(x => x.Items).Return(new List<ICartItem>() { FakeJewelCartItem( Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID, Tests.SAMPLE_JEWEL_SIZE_725, JewelMediaType.WhiteGold, 1000), FakeDiamondCartItem( Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID, 2000), FakeCustomJewelCartItem( Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID, Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID, Tests.SAMPLE_JEWEL_SIZE_725, JewelMediaType.WhiteGold, 3000) }); shoppingCart.Stub(x => x.TotalPrice).Return(6000); var authentication = MockRepository.GenerateStub<IAuthentication>(); var builder = new OrderBuilder(shoppingCart, authentication, mapper); return builder; }
public void Build_ShouldSetTheTabNAvigationModelProperty() { //Arrange var customJewel = new CustomJewelPersistenceForDiamondSearch(); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); webHelpers.Stub(x => x.RouteUrl(Arg<string>.Is.Anything, Arg<RouteValueDictionary>.Is.Anything)).Return( "not important for this test"); var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(customJewel, diamondRepository, jewelRepository, webHelpers); var builder = new DiamondSearchViewModelBuilder(customJewel, tabsForJewelDesignBuilder); //Act var viewModel = builder.Build(); //Assert viewModel.TabsForJewelDesignNavigation.Should().HaveCount(3); }
public void DiamondsBySearchParameters_ShouldFilterResultsByWeightMarginsWhenOnlyToWeightIsSpecified() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; searchParameters.ItemsPerPage = 10; searchParameters.WeightFrom = 0; searchParameters.WeightTo = (decimal) 1.35; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(3); }
public void Build_ShouldReturnAJavaScriptJsonInitializerWithSettingIDBecauseItWasSpecifiedInTheRouteDic() { var customJewel = new CustomJewelPersistenceForDiamondSearch(); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var jewelRepository = new FakeJewelRepository(new FakeSettingManager()); webHelpers.Stub(x => x.RouteUrl(Arg<string>.Is.Anything, Arg<RouteValueDictionary>.Is.Anything)).Return( Tests.STRING_THAT_HAS_NO_MEANING_IN_THIS_CONTEXT); customJewel.DiamondID = FIRST_DIAMOND_IN_REP; customJewel.SettingID = SETTING_ID; var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(customJewel, diamondRepository, jewelRepository, webHelpers); var builder = new DiamondSearchViewModelBuilder(customJewel, tabsForJewelDesignBuilder); //Act var viewModel = builder.Build(); //Assert viewModel.JSONClientScriptInitializer["SettingID"].Should().Be(Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID.ToString()); }
public void DiamondsBySearchParameters_ShouldReturnZeroItemsIfThePageRequestedDoesntExists() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 3; searchParameters.ItemsPerPage = 3; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(0); }
private ChooseSettingViewModelBuilder CreateDefaultChooseSettingViewModelBuilderWithChooseSettingModelAsAParameter(ChooseSettingViewModel chooseSettingViewModel) { var settingManager = new FakeSettingManager(); var tabsRepository = TabsViewModelBuilderTests.CreateStubTabsRepository(JEWEL_DESIGN_TABKEY); var jewelryRepository = new FakeJewelRepository(settingManager); var fakeTabXmlFactory = new FakeTabXmlFactory(); var xmldoc_jeweldesign = fakeTabXmlFactory.JewelDesign3Tabs(JEWEL_DESIGN_TABKEY); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15421"); TabsViewModelBuilder tabsViewModelBuilder = new TabsViewModelBuilder(chooseSettingViewModel, xmldoc_jeweldesign, tabsRepository, jewelryRepository, fileSystem); var diamondRepository = new FakeDiamondRepository(mapper); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(chooseSettingViewModel, diamondRepository, jewelryRepository, webHelpers); var builder = new ChooseSettingViewModelBuilder(chooseSettingViewModel, tabsViewModelBuilder, tabsForJewelDesignBuilder); return builder; }
private JewelDesignController CreateDefaultJewelDesignControllerWithCustomRepository(IJewelRepository jewelRepository) { var diamondRepository = new FakeDiamondRepository(mapper); var formatter = MockRepository.GenerateStub<IJONFormatter>(); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); formatter.Stub(x => x.ToCaratWeight(Arg<decimal>.Is.Anything)).Return("Not important for this test"); formatter.Stub(x => x.ToGramWeight(Arg<decimal>.Is.Anything)).Return("Not important for this test"); formatter.Stub(x => x.ToMilimeter(Arg<decimal>.Is.Anything)).Return("Not important for this test"); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber(); var xmlSourceFactory = new FakeXmlSourceFactory(); var tabRepository = TabsViewModelBuilderTests.CreateStubTabsRepository(TabTestsBase.TabKey); var diamondHelpBuilder = new DiamondHelpBuilder(new FakeXmlSourceFactory()); var pathbarGenerator = MockRepository.GenerateStub<IPathBarGenerator>(); var fakeTestimonailRepository = new FakeTestimonialRepository(mapper); var controller = new JewelDesignController(diamondRepository, formatter, mapper, jewelRepository, webHelpers, xmlSourceFactory, fileSystem, diamondHelpBuilder, tabRepository, pathbarGenerator, fakeTestimonailRepository); return controller; }
private CartItemViewModelBuilder CartItemViewModelBuilderWithJewelCartItem() { var shoppingCart = MockRepository.GenerateStub<IShoppingCart>(); shoppingCart.Stub(x => x.Items).Return(new List<ICartItem>() { FakeJewelCartItem( Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID, Tests.SAMPLE_JEWEL_SIZE_725, JewelMediaType.WhiteGold, Tests.NUMBER_HAS_NO_MEANING_IN_THIS_CONTEXT) }); var jewelRepostory = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var builder = new CartItemViewModelBuilder(jewelRepostory, diamondRepository, mapper); return builder; }
private OrderConfirmationEmailTemplateViewModelBuilder CreateDefaultOrderConfirmationEmailTemplateViewModelBuilder( string orderNumber, CheckoutDetailsModel model) { var shoppingCart = FakeFactory.ShoppingCartWith3Items(); var jewelRepostory = new FakeJewelRepository(new FakeSettingManager()); var diamondRepository = new FakeDiamondRepository(mapper); var cartItemBuilder = new CartItemViewModelBuilder(jewelRepostory, diamondRepository, mapper); var builder = new OrderConfirmationEmailTemplateViewModelBuilder(orderNumber, model, shoppingCart, cartItemBuilder); return builder; }
//TODO add the tests for the mapping to be mapper agnostic private EndViewModelBuilder CreateDefaultEditViewModelBuilder() { var diamondRepository = new FakeDiamondRepository(mapper); var jewelryRepository = new FakeJewelRepository(new SettingManager()); var webHelpers = MockRepository.GenerateStub<IWebHelpers>(); var customJewelInEndPage = new CustomJewelPersistenceInEndPage(); customJewelInEndPage.DiamondID = 1; customJewelInEndPage.SettingID = Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID; customJewelInEndPage.MediaType = JewelMediaType.YellowGold; customJewelInEndPage.Size = Tests.SAMPLE_JEWEL_SIZE_725; var tabsForJewelDesignBuilder = new TabsForJewelDesignNavigationBuilder(customJewelInEndPage, diamondRepository, jewelryRepository, webHelpers); var builder = new EndViewModelBuilder(customJewelInEndPage, tabsForJewelDesignBuilder, diamondRepository, jewelryRepository,mapper); return builder; }
public void DiamondsBySearchParameters_ShouldFilterResultsByWeightMarginsWhenBothAreSpecifiedEvenIfTheFromFieldIBiggerThenTheToField() { //Arrange var searchParameters = new DiamondSearchParameters(); searchParameters.Page = 1; searchParameters.ItemsPerPage = 10; searchParameters.WeightFrom = (decimal) 1.35; searchParameters.WeightTo = 1; var diamondRepository = new FakeDiamondRepository(mapper); //Act var diamonds = diamondRepository.DiamondsBySearchParameters(searchParameters); //Assert diamonds.Should().HaveCount(3); }