public async Task PreferredAsyncShoulReturnOnlyPrefferedDrinks() { var db = DbInfrastructure.GetDatabase(); var drinkService = new DrinkService(db); const int Drinks = 90; // 90 preffered drinks with 3 categories await this.SeedData(db, Drinks, 3, true); var drinks = await drinkService.PreferredAsync(); drinks .Should() .HaveCount(Drinks); drinks .Should() .BeInAscendingOrder(d => d.Name); foreach (var drink in drinks) { var drinkFromDb = await db .Drinks .FindAsync(drink.Id); drinkFromDb.IsPreferred.Should().BeTrue(); } }
public ActionResult Purchases() { List <PurchaseOrder> purcharse = new PurchaseOrderService().GetAll(); List <VMPurchase> vmPurchase = new List <VMPurchase>(); foreach (var p in purcharse) { VMPurchase vm = new VMPurchase() { Id = p.Id, Total = p.Total, Status = p.Status, Provider = p.Provider }; foreach (var item in p.Itens) { var product = new DrinkService().GetByBarCode(item.BarCode); vm.Itens = new List <VMPurchaseOrderItem>() { new VMPurchaseOrderItem { Amount = item.Amount, BarCode = item.BarCode, Total = item.Total, Value = item.Value, Description = product.Name } }; } vmPurchase.Add(vm); } return(View(vmPurchase)); }
public void Add(DrinkAddVM model) { if (ModelState.IsValid) { DrinkService.Add(model); } }
public void DrinkService_ReadAll() { var drinkService = new DrinkService(); var result = drinkService.ReadAll(); Assert.IsNotNull(result.FirstOrDefault()); }
public async Task NonAlcoholicCountAsyncShouldReturnCorrectCount() { var db = DbInfrastructure.GetDatabase(); const int NonAlcoholicDrinks = 150; var alcoholicCategory = new Category { Name = "Alcoholic" }; var nonAlcoholicCategory = new Category { Name = "Non-Alcoholic" }; await db.AddRangeAsync(alcoholicCategory, nonAlcoholicCategory); await db.SaveChangesAsync(); await this.SeedDataByCategory(db, 1234, alcoholicCategory.Id); await this.SeedDataByCategory(db, NonAlcoholicDrinks, nonAlcoholicCategory.Id); var drinkService = new DrinkService(db); var count = await drinkService.NonAlcoholicCountAsync(); count.Should().Be(NonAlcoholicDrinks); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Services (Call to the web API) WebClientServiceBase coinService = new CoinStorageService(); WebClientServiceBase drinkService = new DrinkService(); //Views CoinCRUDView coinCRUD = new CoinCRUDView(); DispenserView dispenserView = new DispenserView(); CoinStorageView coinStorageView = new CoinStorageView(); dispenserView.SetCoinStorageView(coinStorageView); //Presenters CoinCRUDPresenter coinCRUDPresenter = new CoinCRUDPresenter(coinCRUD, coinService); CoinStoragePresenter coinStoragePresenter = new CoinStoragePresenter(coinStorageView, coinService); DispenserPresenter dispenserPresenter = new DispenserPresenter(dispenserView, coinStoragePresenter, coinService, drinkService); //Main MainForm main = new MainForm(dispenserView, coinCRUD); Application.Run(main); }
public async Task <ActionResult <string> > Post(string drinkType, double money, int sugars, int extraHot) { try { var drinkService = new DrinkService(); var drink = new Drink { DrinkType = drinkType, Money = money, Sugars = sugars, ExtraHot = extraHot, }; var result = await drinkService.OrderAsync(drink); this.log.LogDebug(string.Format("{0}: {1} executed", System.DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name)); return(this.Ok(result)); } catch (Services.BadParametersException exception) { log.LogInformation(string.Format("{0}: {1}", System.DateTime.Now, exception.Message)); return(this.StatusCode(400, exception.Message)); } catch (System.Exception exception) { log.LogError(exception, string.Format("{0}: Error in {1}", System.DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name)); return(this.StatusCode(500)); } }
public async Task AllAsyncShouldReturnCorrectDrinksByPageWithoutCategory() { var db = DbInfrastructure.GetDatabase(); // 270 drinks with 1 categories await this.SeedData(db, 270, 1); var drinkService = new DrinkService(db); const string Search = "0"; for (var i = 0; i < 3; i++) { var drinks = await drinkService.AllAsync(i + 1, null, Search); drinks .Should() .HaveCount(WebConstants.DrinksPerPage); drinks .Should() .BeInAscendingOrder(d => d.Name); foreach (var drink in drinks) { drink .Name .ToLower() .Should() .Contain(Search.ToLower()); } } }
private static async Task AddDrinkToDb(DrinkService drinkService) { await drinkService.AddAsync( Name, Description, FullDescription, Price, ImageUrl, ImageThumbnailUrl, true, false, CategoryId); }
public void AllAsyncShouldThrowExceptionIfCategoryIsNotFound() { var db = DbInfrastructure.GetDatabase(); var drinkService = new DrinkService(db); Func <Task> func = async() => await drinkService.AllAsync(1, "Invalid CateGorY", null); func .Should() .Throw <InvalidOperationException>() .WithMessage("Category Invalid CateGorY is not found."); }
public IHttpActionResult Post([FromBody] Drink drink) { var d = DrinkService.Create(drink); if (d > 0) { return(Created("", drink)); } else { return(NotFound()); } }
public void DrinkService_Order_DrinkWithoutData_2() { // Arrange var drinkService = new DrinkService(); var drink = new Drink(); // Act BadParametersException exception = Assert.Throws <BadParametersException>( delegate { drinkService.OrderAsync(drink).GetAwaiter().GetResult(); }); // Assert Assert.That(exception.Message, Is.EqualTo("The drink type should be tea, coffee or chocolate.")); }
public async Task CountAsyncShouldReturnCorrectCount() { var db = DbInfrastructure.GetDatabase(); const int Drinks = 150; await this.SeedData(db, Drinks, 5); var drinkService = new DrinkService(db); var count = await drinkService.CountAsync(); count.Should().Be(Drinks); }
public ActionResult <IEnumerable <Drink> > Get() { try { var drinkService = new DrinkService(); var result = drinkService.ReadAll(); return(this.Ok(result)); } catch (System.Exception exception) { log.LogError(exception, string.Format("{0}: Error in {1}", System.DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name)); return(this.StatusCode(500)); } }
public async Task DeleteAsyncShouldDeleteDrink() { var db = DbInfrastructure.GetDatabase(); var drinkService = new DrinkService(db); await AddDrinkToDb(drinkService); var drink = await db.Drinks.FirstAsync(); await drinkService.DeleteAsync(drink.Id); drink = await db.Drinks.FirstOrDefaultAsync(); drink.Should().BeNull(); }
public ActionResult Index() { List <Drink> drinks = new DrinkService().GetAll(); List <VMDrink> vms = new List <VMDrink>(); foreach (var drink in drinks) { vms.Add(new VMDrink() .SetName(drink.Name) .SetBarCode(drink.BarCode) .SetAmount(drink.Amount) .SetLot(drink.LotID) .SetLot(new LotService().GetByID(drink.LotID)) .SetStock(new StockService().GetByDrink(drink.BarCode)) ); } return(View(vms)); }
public void DrinkService_Order_DrinkHotWithSugar(string drinkType, float money, int sugars, int extraHot) { // Arrange var drinkService = new DrinkService(); var drink = new Drink { DrinkType = drinkType, Money = money, Sugars = sugars, ExtraHot = extraHot, }; // Act string result = drinkService.OrderAsync(drink).Result; // Assert Assert.AreEqual(string.Format("You have ordered a {0} extra hot with {1} sugars(stick included).", drink.DrinkType.ToLower(), drink.Sugars), result); }
public IHttpActionResult Post([FromBody] Drink drink) { try { if (DrinkService.AddDrink(drink) > 0) { return(Ok()); } else { return(NotFound()); } } catch (Exception) { return(NotFound()); } }
public void DrinkService_Order_DrinkColdWhithoutSugar(string drinkType, float money, int sugars, int extraHot) { // Arrange var drinkService = new DrinkService(); var drink = new Drink { DrinkType = drinkType, Money = money, Sugars = sugars, ExtraHot = extraHot, }; // Act string result = drinkService.OrderAsync(drink).Result; // Assert Assert.AreEqual(string.Format("You have ordered a {0}", drink.DrinkType.ToLower()), result); }
public void DrinkService_Order_InventedDrink() { // Arrange var drinkService = new DrinkService(); var drink = new Drink { DrinkType = "invented drink", Money = 0.8F, Sugars = 1, ExtraHot = 1, }; // Act BadParametersException exception = Assert.Throws <BadParametersException>( delegate { drinkService.OrderAsync(drink).GetAwaiter().GetResult(); }); // Assert Assert.AreEqual("The drink type should be tea, coffee or chocolate.", exception.Message); }
public async Task EditAsyncShouldEditDrink() { var db = DbInfrastructure.GetDatabase(); var drinkService = new DrinkService(db); await drinkService.AddAsync( "Some name", "Stupid description", "The full description", 2.23M, "Image URL", "Image TURL", false, true, 56); var actualDrink = await db.Drinks.FirstAsync(); await drinkService.EditAsync( actualDrink.Id, Name, Description, FullDescription, Price, ImageUrl, ImageThumbnailUrl, true, false, CategoryId); actualDrink = await db.Drinks.FirstAsync(); actualDrink.Name.Should().Be(Name); actualDrink.Description.Should().Be(Description); actualDrink.FullDescription.Should().Be(FullDescription); actualDrink.Price.Should().Be(Price); actualDrink.ImageUrl.Should().Be(ImageUrl); actualDrink.ImageThumbnailUrl.Should().Be(ImageThumbnailUrl); actualDrink.IsPreferred.Should().Be(true); actualDrink.IsInStock.Should().Be(false); actualDrink.CategoryId.Should().Be(CategoryId); }
public void DrinkService_Order_BadNumberSugars(string drinkType, float money, int sugars, int extraHot) { // Arrange var drinkService = new DrinkService(); var drink = new Drink { DrinkType = drinkType, Money = money, Sugars = sugars, ExtraHot = extraHot, }; // Act BadParametersException exception = Assert.Throws <BadParametersException>( delegate { drinkService.OrderAsync(drink).GetAwaiter().GetResult(); }); // Assert Assert.AreEqual("The number of sugars should be between 0 and 2.", exception.Message); }
public async Task ByIdAsyncShouldReturnDrinkById() { var db = DbInfrastructure.GetDatabase(); var drink = new Drink { Name = "Drink" }; await db.AddAsync(drink); // 1000 drinks with 10 categories await this.SeedData(db, 1000, 10); var drinkService = new DrinkService(db); var actualDrink = await drinkService.ByIdAsync(drink.Id); actualDrink.Should().BeEquivalentTo(drink); }
public async Task AddAsyncShouldSaveDrinkToDb() { var db = DbInfrastructure.GetDatabase(); var drinkService = new DrinkService(db); await AddDrinkToDb(drinkService); var actualDrink = await db.Drinks.FirstAsync(); actualDrink.Name.Should().Be(Name); actualDrink.Description.Should().Be(Description); actualDrink.FullDescription.Should().Be(FullDescription); actualDrink.Price.Should().Be(Price); actualDrink.ImageUrl.Should().Be(ImageUrl); actualDrink.ImageThumbnailUrl.Should().Be(ImageThumbnailUrl); actualDrink.IsPreferred.Should().Be(true); actualDrink.IsInStock.Should().Be(false); actualDrink.CategoryId.Should().Be(CategoryId); }
public async Task <ActionResult <Drink> > GetById(int id) { try { var drinkService = new DrinkService(); var result = await drinkService.GetByIdAsync(id); if (result == null) { return(this.NotFound()); } return(this.Ok(result)); } catch (System.Exception exception) { log.LogError(exception, string.Format("{0}: Error in {1}", System.DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name)); return(this.StatusCode(500)); } }
public static void Register(HttpConfiguration config) { //Register controllers in the activartor //In reality this should be done by IoC container var drinkService = new DrinkService(); var activator = new SimpleHttpControllerActivator(); activator.Register(() => new CartController(drinkService)); activator.Register(() => new DrinkController(drinkService)); config.Services.Replace(typeof(IHttpControllerActivator), activator); //Register routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute(name: "Cart", routeTemplate: "api/cart", defaults: new { controller = "Cart" }); config.Routes.MapHttpRoute(name: "Drink", routeTemplate: "api/cart/drink/{name}", defaults: new { controller = "Drink" }); //Register filters config.Filters.Add(new SimpleAuthorizationFilter()); config.Filters.Add(new ModelVaidationFilter()); }
public async Task CountBySearchAsyncShouldReturnCorrectCount() { var db = DbInfrastructure.GetDatabase(); // 100 drinks with 3 categories await this.SeedData(db, 100, 3); var drinkService = new DrinkService(db); const string Search = "0"; var actualCount = await drinkService.CountBySearchAsync(Search); var expectedCount = await db .Drinks .Where(d => d.Name.ToLower().Contains(Search.ToLower())) .CountAsync(); actualCount.Should().Be(expectedCount); }
public async Task AllAsyncShouldReturnCorrectDrinksByPageWithoutSearch() { var db = DbInfrastructure.GetDatabase(); var category = new Category { Name = "Some Category" }; await db.AddAsync(category); await db.SaveChangesAsync(); await this.SeedDataByCategory(db, 180, category.Id); var drinkService = new DrinkService(db); for (var i = 0; i < 20; i++) { var drinks = await drinkService.AllAsync(i + 1, category.Name, null); drinks .Should() .HaveCount(WebConstants.DrinksPerPage); drinks .Should() .BeInAscendingOrder(d => d.Name); foreach (var drink in drinks) { var drinkFromDb = await db .Drinks .FindAsync(drink.Id); drinkFromDb.CategoryId.Should().Be(category.Id); } } }
public async Task AllAsyncShouldReturnCorrectDrinksByPageWithoutCategoryAndSearch() { var db = DbInfrastructure.GetDatabase(); // 90 drinks with 5 categories await this.SeedData(db, 90, 5); var drinkService = new DrinkService(db); for (var i = 0; i < 10; i++) { var drinks = await drinkService.AllAsync(i + 1, null, null); drinks .Should() .HaveCount(WebConstants.DrinksPerPage); drinks .Should() .BeInAscendingOrder(d => d.Name); } }
public void DrinkService_Order_MoneyNotEnought(string drinkType, float money, int sugars, int extraHot) { // Arrange var drinkService = new DrinkService(); var drink = new Drink { DrinkType = drinkType, Money = money, Sugars = sugars, ExtraHot = extraHot, }; // Act BadParametersException exception = Assert.Throws <BadParametersException>( delegate { drinkService.OrderAsync(drink).GetAwaiter().GetResult(); }); // Assert Assert.AreEqual( string.Format( "The {0} costs {1}.", drinkService.DrinkPrices.Single(x => x.Name.ToLower() == drink.DrinkType.ToLower()).Name, drinkService.DrinkPrices.Single(x => x.Name.ToLower() == drink.DrinkType.ToLower()).Price.ToString("N", new System.Globalization.CultureInfo("en-US"))), exception.Message); }