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 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);
        }