public void CacheTimeoutWillReflectConstructorArgument() { // Fixture setup var fixture = new Fixture(); var expectedCacheTimeout = fixture.CreateAnonymous<TimeSpan>(); var sut = new CachingCurrencyProvider(new Mock<CurrencyProvider>().Object, expectedCacheTimeout); // Exercise system TimeSpan result = sut.CacheTimeout; // Verify outcome Assert.Equal<TimeSpan>(expectedCacheTimeout, result); // Teardown }
protected override IController GetControllerInstance( RequestContext requestContext, Type controllerType) { string connectionString = ConfigurationManager.ConnectionStrings ["CommerceObjectContext"].ConnectionString; var productRepository = new SqlProductRepository(connectionString); var basketRepository = new SqlBasketRepository(connectionString); var discountRepository = new SqlDiscountRepository(connectionString); var discountPolicy = new RepositoryBasketDiscountPolicy( discountRepository); var basketService = new BasketService(basketRepository, discountPolicy); var currencyProvider = new CachingCurrencyProvider( new SqlCurrencyProvider(connectionString), TimeSpan.FromHours(1)); if (controllerType == typeof(BasketController)) { return new BasketController( basketService, currencyProvider); } if (controllerType == typeof(HomeController)) { return new HomeController( productRepository, currencyProvider); } return base.GetControllerInstance( requestContext, controllerType); }