public MultiShipmentViewModelFactoryTests() { var market = new MarketImpl(new MarketId(Currency.USD)); _cart = new FakeCart(market, Currency.USD); _cart.Forms.Single().Shipments.Single().LineItems.Add(new InMemoryLineItem()); _cart.Forms.Single().CouponCodes.Add("couponcode"); var addressBookServiceMock = new Mock <IAddressBookService>(); addressBookServiceMock.Setup(x => x.List()).Returns(() => new List <AddressModel> { new AddressModel { AddressId = "addressid" } }); var preferredBillingAddress = CustomerAddress.CreateInstance(); preferredBillingAddress.Name = "preferredBillingAddress"; addressBookServiceMock.Setup(x => x.GetPreferredBillingAddress()).Returns(preferredBillingAddress); addressBookServiceMock.Setup(x => x.UseBillingAddressForShipment()).Returns(true); _startPage = new StartPage(); var contentLoaderMock = new Mock <IContentLoader>(); contentLoaderMock.Setup(x => x.Get <StartPage>(It.IsAny <PageReference>())).Returns(_startPage); var urlResolverMock = new Mock <UrlResolver>(); var httpcontextMock = new Mock <HttpContextBase>(); var requestMock = new Mock <HttpRequestBase>(); requestMock.Setup(x => x.Url).Returns(new Uri("http://site.com")); requestMock.Setup(x => x.UrlReferrer).Returns(new Uri("http://site.com")); httpcontextMock.Setup(x => x.Request).Returns(requestMock.Object); var marketServiceMock = new Mock <IMarketService>(); marketServiceMock.Setup(x => x.GetMarket(It.IsAny <MarketId>())).Returns(market); var shipmentViewModelFactoryMock = new Mock <ShipmentViewModelFactory>(null, null, null, null, null, marketServiceMock.Object); shipmentViewModelFactoryMock.Setup(x => x.CreateShipmentsViewModel(It.IsAny <ICart>())).Returns(() => new[] { new ShipmentViewModel { CartItems = new[] { new CartItemViewModel { Quantity = 1 } } } }); _subject = new MultiShipmentViewModelFactory( new MemoryLocalizationService(), addressBookServiceMock.Object, contentLoaderMock.Object, urlResolverMock.Object, (() => httpcontextMock.Object), shipmentViewModelFactoryMock.Object); }
public void Multiple_Sellers() { var market = new MarketImpl(); var buy = new Offer(OfferType.Buy, COMMODITY, 1, 2); var sell1 = new Offer(OfferType.Sell, COMMODITY, 1, 1); var sell2 = new Offer(OfferType.Sell, COMMODITY, 1, 1); market.AddOffer(buy); market.AddOffer(sell1); market.AddOffer(sell2); market.ResolveOffers(); Assert.AreEqual(2, buy.Results.Count); foreach (var result in buy.Results) { Assert.AreEqual(1, result.Amount); Assert.AreEqual(1, result.Price); } Assert.AreEqual(1, sell1.Results.Count); var sell1Result = sell1.Results.Single(); Assert.AreEqual(1, sell1Result.Amount); Assert.AreEqual(1, sell1Result.Price); Assert.AreEqual(1, sell2.Results.Count); var sell2Result = sell2.Results.Single(); Assert.AreEqual(1, sell2Result.Amount); Assert.AreEqual(1, sell2Result.Price); }
public void Multiple_Buyers() { var market = new MarketImpl(); var buy1 = new Offer(OfferType.Buy, COMMODITY, 1, 1); var buy2 = new Offer(OfferType.Buy, COMMODITY, 1, 1); var sell = new Offer(OfferType.Sell, COMMODITY, 1, 2); market.AddOffer(buy1); market.AddOffer(buy2); market.AddOffer(sell); market.ResolveOffers(); Assert.AreEqual(1, buy1.Results.Count); var buy1Result = buy1.Results.Single(); Assert.AreEqual(1, buy1Result.Amount); Assert.AreEqual(1, buy1Result.Price); Assert.AreEqual(1, buy2.Results.Count); var buy2Result = buy2.Results.Single(); Assert.AreEqual(1, buy2Result.Amount); Assert.AreEqual(1, buy2Result.Price); Assert.AreEqual(2, sell.Results.Count); foreach (var result in sell.Results) { Assert.AreEqual(1, result.Amount); Assert.AreEqual(1, result.Price); } }
public ShipmentViewModelFactoryTests() { var market = new MarketImpl(new MarketId(Currency.USD)); _cart = new FakeCart(market, Currency.USD) { Name = "Default" }; _cart.Forms.Single().Shipments.Single().LineItems.Add(new InMemoryLineItem { Code = "code" }); _cart.Forms.Single().CouponCodes.Add("couponcode"); _shippingManagerFacadeMock = new Mock <ShippingManagerFacade>(null, null); _shippingManagerFacadeMock.Setup(x => x.GetShippingMethodsByMarket(It.IsAny <string>(), It.IsAny <bool>())).Returns(() => new List <ShippingMethodInfoModel> { new ShippingMethodInfoModel { LanguageId = CultureInfo.InvariantCulture.TwoLetterISOLanguageName, Currency = Currency.USD } }); _shippingRate = new ShippingRate(Guid.NewGuid(), "name", new Money(10, Currency.USD)); _shippingManagerFacadeMock.Setup(x => x.GetRate(It.IsAny <IShipment>(), It.IsAny <ShippingMethodInfoModel>(), It.IsAny <IMarket>())) .Returns(_shippingRate); var languageServiceMock = new Mock <LanguageService>(null, null, null); languageServiceMock.Setup(x => x.GetCurrentLanguage()).Returns(CultureInfo.InvariantCulture); var addressBookServiceMock = new Mock <IAddressBookService>(); _addressModel = new AddressModel(); addressBookServiceMock.Setup(x => x.ConvertToModel(It.IsAny <IOrderAddress>())).Returns(_addressModel); _cartItem = new CartItemViewModel(); var cartItemViewModelFactoryMock = new Mock <CartItemViewModelFactory>(null, null, null, null, null, null); cartItemViewModelFactoryMock.Setup(x => x.CreateCartItemViewModel(It.IsAny <ICart>(), It.IsAny <ILineItem>(), It.IsAny <VariationContent>())).Returns(_cartItem); var catalogContentServiceMock = new Mock <CatalogContentService>(null, null, null, null, null, null, null); catalogContentServiceMock.Setup(x => x.GetItems <EntryContentBase>(It.IsAny <IEnumerable <string> >())) .Returns(() => new List <VariationContent> { new VariationContent { Code = "code" } }); _marketServiceMock = new Mock <IMarketService>(); _marketServiceMock.Setup(x => x.GetMarket(It.IsAny <MarketId>())).Returns(market); _subject = new ShipmentViewModelFactory( catalogContentServiceMock.Object, _shippingManagerFacadeMock.Object, languageServiceMock.Object, addressBookServiceMock.Object, cartItemViewModelFactoryMock.Object, _marketServiceMock.Object); }
protected BaseOrderFactoryTests() { OmniumFakesBuilder = new OmniumFakesBuilder(); Market = new MarketImpl(MarketId.Default); Currency = new Currency(Currency.USD); CultureResolver = new CultureResolver(); InitializeDefaultOmniumOrderFactorySubject(); }
private void DisableDefaultMarket() { var marketService = ServiceLocator.Current.GetInstance <IMarketService>(); // Disable default market _progressMessenger.AddProgressMessageText("Disabling default market...", false, 0); var defaultMarket = new MarketImpl(marketService.GetMarket(MarketId.Default)) { IsEnabled = false }; marketService.UpdateMarket(defaultMarket); }
public void Index_ShouldReturnPartialViewResultType() { IEnumerable <IMarket> markets = new MarketImpl[] { _currentMarket, _market }; _mockMarketService.Setup(x => x.GetAllMarkets()).Returns(markets); _mockCurrentMarket.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var contentLink = new ContentReference(11); var subject = CreateController(); var result = subject.Index(contentLink); Assert.IsInstanceOfType(result, typeof(PartialViewResult)); }
public void Index_ShouldReturnModelType() { IEnumerable <IMarket> markets = new MarketImpl[] { _currentMarket, _market }; _marketServiceMock.Setup(x => x.GetAllMarkets()).Returns(markets); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var contentLink = new ContentReference(11); var subject = CreateController(); var result = subject.Index(contentLink); Assert.IsType <MarketViewModel>((result as ViewResultBase).Model); }
public FakeOrderGroup() { Forms = new List <IOrderForm>(); var market = new MarketImpl(MarketId.Default); MarketId = market.MarketId; MarketName = market.MarketName; PricesIncludeTax = market.PricesIncludeTax; Currency = new Currency(Currency.USD); OrderLink = new OrderReference(++_counter, "Default", _customerId, typeof(Cart)); Properties = new Hashtable(); Notes = new List <IOrderNote>(); }
public void Index_ShouldReturnModelWithSortedMarkets() { IEnumerable <IMarket> markets = new MarketImpl[] { _currentMarket, _market }; _marketServiceMock.Setup(x => x.GetAllMarkets()).Returns(markets); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var subject = CreateController(); var result = subject.Index(_contentLink); var model = ((ViewResultBase)result).Model as MarketViewModel; Assert.Equal(_currentMarket.MarketId.Value, model.Markets.ToList().First().Value); }
public void Setup() { _contentLink = new ContentReference(11); _language = "en"; _currentMarket = CreateMarketImpl("currentMarket", "currentMarket", true); _market = CreateMarketImpl("myMarket", "myMarket", true); _mockCurrentMarket = new Mock <ICurrentMarket>(); _mockMarketService = new Mock <IMarketService>(); _mockUrlResolver = new Mock <UrlResolver>(); _mockLanguageService = new Mock <LanguageService>(null, null, null, null); _mockLanguageService.Setup(x => x.SetCurrentLanguage(It.IsAny <string>())).Returns(true); }
public async void TrackProductAsync_ShouldIndcludeMarketIdAttribute() { var market = new MarketImpl("SomeMarket"); _currentMarketServiceMock.Setup(x => x.GetCurrentMarket()).Returns(market); await _subject.TrackProductAsync(_httpContextMock.Object, null, false); Assert.NotNull(_trackedData); string marketId; _trackedData.Payload.TryGetCustomAttribute("MarketId", out marketId); Assert.Equal(market.MarketId.Value, marketId); }
public void Simple_No_Trade_If_Buy_Price_Below_Sell() { var market = new MarketImpl(); var buy = new Offer(OfferType.Buy, COMMODITY, 1, 1); var sell = new Offer(OfferType.Sell, COMMODITY, 2, 1); market.AddOffer(buy); market.AddOffer(sell); market.ResolveOffers(); Assert.AreEqual(0, buy.Results.Count); Assert.AreEqual(0, sell.Results.Count); }
public MarketControllerTests() { _contentLink = new ContentReference(11); _language = "en"; _currentMarket = CreateMarketImpl("currentMarket", "currentMarket", true); _market = CreateMarketImpl("myMarket", "myMarket", true); _currentMarketMock = new Mock <ICurrentMarket>(); _marketServiceMock = new Mock <IMarketService>(); _urlResolverMock = new Mock <UrlResolver>(); _currencyServiceMock = new Mock <ICurrencyService>(); _cartServiceMock = new Mock <ICartService>(); _languageServiceMock = new Mock <LanguageService>(null, null, null, null); _languageServiceMock.Setup(x => x.SetCurrentLanguage(It.IsAny <string>())).Returns(true); }
public void Index_ShouldReturnModelWithEnabledMarkets() { var disabledMarket = CreateMarketImpl("myMarket", "myMarket", false); IEnumerable <IMarket> markets = new MarketImpl[] { _currentMarket, disabledMarket }; _marketServiceMock.Setup(x => x.GetAllMarkets()).Returns(markets); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var subject = CreateController(); var result = subject.Index(_contentLink); var model = ((ViewResultBase)result).Model as MarketViewModel; model.Markets.Should().BeEquivalentTo(new[] { _currentMarket }.Select(x => new SelectListItem { Text = x.MarketName, Value = x.MarketId.Value })); }
public MarketControllerTests() { _contentLink = new ContentReference(11); _language = "en"; _currentMarket = CreateMarketImpl("currentMarket", "currentMarket", true); _market = CreateMarketImpl("myMarket", "myMarket", true); _currentMarketMock = new Mock <ICurrentMarket>(); _marketServiceMock = new Mock <IMarketService>(); _urlResolverMock = new Mock <UrlResolver>(); _currencyServiceMock = new Mock <ICurrencyService>(); _cartServiceMock = new Mock <ICartService>(); _updateCurrentLanguageMock = new Mock <IUpdateCurrentLanguage>(); _cookieServiceMock = new Mock <CookieService>(); _languageServiceMock = new Mock <LanguageService>(null, _cookieServiceMock.Object, _updateCurrentLanguageMock.Object); }
public CartViewModelFactoryTests() { var market = new MarketImpl(MarketId.Default); _cart = new FakeCart(market, Currency.USD); _cart.Forms.Single().Shipments.Single().LineItems.Add(new InMemoryLineItem { Quantity = 1, PlacedPrice = 105, LineItemDiscountAmount = 5 }); _startPage = new StartPage() { CheckoutPage = new ContentReference(1), WishListPage = new ContentReference(1) }; var contentLoaderMock = new Mock<IContentLoader>(); contentLoaderMock.Setup(x => x.Get<StartPage>(It.IsAny<ContentReference>())).Returns(_startPage); var marketServiceMock = new Mock<IMarketService>(); marketServiceMock.Setup(x => x.GetMarket(It.IsAny<MarketId>())).Returns(market); var shipmentViewModelFactoryMock = new Mock<ShipmentViewModelFactory>(null, null, null, null, null, marketServiceMock.Object); _cartItems = new List<CartItemViewModel> { new CartItemViewModel { DiscountedPrice = new Money(100, Currency.USD), Quantity = 1 } }; shipmentViewModelFactoryMock.Setup(x => x.CreateShipmentsViewModel(It.IsAny<ICart>())).Returns(() => new[] { new ShipmentViewModel { CartItems = _cartItems } }); _referenceConverterMock = new Mock<ReferenceConverter>(null, null); _referenceConverterMock.Setup(c => c.GetContentLink(It.IsAny<string>())).Returns(new ContentReference(1)); var pricingServiceMock = new Mock<IPricingService>(); pricingServiceMock.Setup(x => x.GetMoney(It.IsAny<decimal>())).Returns((decimal amount) => new Money(amount, Currency.USD)); _totals = new OrderGroupTotals( new Money(100, Currency.USD), new Money(100, Currency.USD), new Money(100, Currency.USD), new Money(100, Currency.USD), new Money(100, Currency.USD), new Dictionary<IOrderForm, OrderFormTotals>()); _orderDiscountTotal = new Money(5, Currency.USD); var orderGroupCalculatorMock = new Mock<IOrderGroupCalculator>(); orderGroupCalculatorMock.Setup(x => x.GetOrderDiscountTotal(It.IsAny<IOrderGroup>())) .Returns(_orderDiscountTotal); orderGroupCalculatorMock.Setup(x => x.GetSubTotal(_cart)).Returns(new Money(_cart.GetAllLineItems().Sum(x => x.PlacedPrice * x.Quantity - ((ILineItemDiscountAmount)x).EntryAmount), _cart.Currency)); _subject = new CartViewModelFactory( contentLoaderMock.Object, pricingServiceMock.Object, orderGroupCalculatorMock.Object, shipmentViewModelFactoryMock.Object, _referenceConverterMock.Object); }
public void Simple_Limited_By_Amount([Values("buy", "sell")] string limited) { var market = new MarketImpl(); var buy = new Offer(OfferType.Buy, COMMODITY, 1, limited == "buy" ? 1 : 2); var sell = new Offer(OfferType.Sell, COMMODITY, 1, limited == "buy" ? 2 : 1); market.AddOffer(buy); market.AddOffer(sell); market.ResolveOffers(); Assert.AreEqual(1, buy.Results.Count); var buyResult = buy.Results.Single(); Assert.AreEqual(1, buyResult.Amount); Assert.AreEqual(1, buyResult.Price); Assert.AreEqual(1, sell.Results.Count); var sellResult = sell.Results.Single(); Assert.AreEqual(1, sellResult.Amount); Assert.AreEqual(1, sellResult.Price); }
public void Simple_Halfway_Price_If_Buy_Price_Is_Greater() { var market = new MarketImpl(); var buy = new Offer(OfferType.Buy, COMMODITY, 3, 1); var sell = new Offer(OfferType.Sell, COMMODITY, 1, 1); market.AddOffer(buy); market.AddOffer(sell); market.ResolveOffers(); Assert.AreEqual(1, buy.Results.Count); var buyResult = buy.Results.Single(); Assert.AreEqual(1, buyResult.Amount); Assert.AreEqual(2, buyResult.Price); Assert.AreEqual(1, sell.Results.Count); var sellResult = sell.Results.Single(); Assert.AreEqual(1, sellResult.Amount); Assert.AreEqual(2, sellResult.Price); }
protected override void ExecuteInternal(IProgressMessenger progressMessenger) { progressMessenger.AddProgressMessageText("Creating markets...", false, 0); using (var stream = new FileStream(Path.Combine(HostingEnvironment.ApplicationPhysicalPath, @"App_Data\markets.xml"), FileMode.Open)) { foreach (var xMarket in GetXElements(stream, "Market")) { var market = new MarketImpl(xMarket.Get("MarketId")) { IsEnabled = xMarket.GetBool("IsEnabled"), MarketName = xMarket.Get("MarketName"), MarketDescription = xMarket.Get("MarketDescription") ?? xMarket.Get("MarketName"), DefaultCurrency = new Currency(xMarket.Get("DefaultCurrency")), DefaultLanguage = new CultureInfo(xMarket.Get("DefaultLanguage")), PricesIncludeTax = xMarket.GetBoolOrDefault("PricesIncludeTax") }; foreach (var xCurrency in xMarket.Element("Currencies").Elements("Currency").Distinct()) { market.CurrenciesCollection.Add(new Currency((string)xCurrency)); } foreach (var xLanguage in xMarket.Element("Languages").Elements("Language").Distinct()) { market.LanguagesCollection.Add(new CultureInfo((string)xLanguage)); } foreach (var xCountry in xMarket.Element("Countries").Elements("Country").Distinct()) { market.CountriesCollection.Add((string)xCountry); } var existingMarket = MarketService.GetMarket(market.MarketId); if (existingMarket == null) { MarketService.CreateMarket(market); } else { foreach (var currency in existingMarket.Currencies.Where(x => !market.CurrenciesCollection.Contains(x))) { market.CurrenciesCollection.Add(currency); } foreach (var language in existingMarket.Languages .Where(el => !market.Languages.Any(nl => string.Equals(el.Name, nl.Name, StringComparison.OrdinalIgnoreCase)))) { market.LanguagesCollection.Add(language); } foreach (var country in existingMarket.Countries .Where(ec => !market.Countries.Any(nc => string.Equals(ec, nc, StringComparison.OrdinalIgnoreCase)))) { market.CountriesCollection.Add(country); } MarketService.UpdateMarket(market); } } } }
public void Setup() { _contentLink = new ContentReference(11); _language = "en"; _currentMarket = CreateMarketImpl( "currentMarket", "currentMarket", true); _market = CreateMarketImpl("myMarket", "myMarket", true); _mockCurrentMarket = new Mock<ICurrentMarket>(); _mockMarketService = new Mock<IMarketService>(); _mockUrlResolver = new Mock<UrlResolver>(); _mockLanguageService = new Mock<LanguageService>(null, null, null, null); _mockLanguageService.Setup(x => x.SetCurrentLanguage(It.IsAny<string>())).Returns(true); }
public void Index_ShouldReturnModelWithSortedMarkets() { IEnumerable<IMarket> markets = new MarketImpl[] { _currentMarket, _market }; _marketServiceMock.Setup(x => x.GetAllMarkets()).Returns(markets); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var subject = CreateController(); var result = subject.Index(_contentLink); var model = ((ViewResultBase)result).Model as MarketViewModel; Assert.Equal<string>( _currentMarket.MarketId.Value, model.Markets.ToList().First().Value); }
public void Index_ShouldReturnModelType() { IEnumerable<IMarket> markets = new MarketImpl[] { _currentMarket, _market }; _marketServiceMock.Setup(x => x.GetAllMarkets()).Returns(markets); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var contentLink = new ContentReference(11); var subject = CreateController(); var result = subject.Index(contentLink); Assert.IsType(typeof(MarketViewModel), (result as ViewResultBase).Model); }
public MarketControllerTests() { _contentLink = new ContentReference(11); _language = "en"; _currentMarket = CreateMarketImpl( "currentMarket", "currentMarket", true); _market = CreateMarketImpl("myMarket", "myMarket", true); _currentMarketMock = new Mock<ICurrentMarket>(); _marketServiceMock = new Mock<IMarketService>(); _urlResolverMock = new Mock<UrlResolver>(); _currencyServiceMock = new Mock<ICurrencyService>(); _cartServiceMock = new Mock<ICartService>(); _languageServiceMock = new Mock<LanguageService>(null, null, null, null); _languageServiceMock.Setup(x => x.SetCurrentLanguage(It.IsAny<string>())).Returns(true); }
public void Index_ShouldReturnModelWithEnabledMarkets() { var disabledMarket = CreateMarketImpl("myMarket", "myMarket", false); IEnumerable<IMarket> markets = new MarketImpl[] { _currentMarket, disabledMarket }; _marketServiceMock.Setup(x => x.GetAllMarkets()).Returns(markets); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var subject = CreateController(); var result = subject.Index(_contentLink); var model = ((ViewResultBase)result).Model as MarketViewModel; model.Markets.ShouldBeEquivalentTo(new[] { _currentMarket }.Select(x => new SelectListItem { Text = x.MarketName, Value = x.MarketId.Value})); }
public void Index_ShouldReturnPartialViewResultType() { IEnumerable<IMarket> markets = new MarketImpl[] { _currentMarket, _market }; _mockMarketService.Setup(x => x.GetAllMarkets()).Returns(markets); _mockCurrentMarket.Setup(x => x.GetCurrentMarket()).Returns(_currentMarket); var contentLink = new ContentReference(11); var subject = CreateController(); var result = subject.Index(contentLink); Assert.IsInstanceOfType(result, typeof(PartialViewResult)); }
private void DisableDefaultMarket() { var marketService = ServiceLocator.Current.GetInstance<IMarketService>(); // Disable default market //_progressMessenger.AddProgressMessageText("Disabling default market...", false, 0); var defaultMarket = new MarketImpl(marketService.GetMarket(MarketId.Default)) { IsEnabled = false }; marketService.UpdateMarket(defaultMarket); }