public void EditOwnRestaurantMeal_WithNewCorrectData_ShouldChangeMeal_And_Return200OK() { // Arrange var context = new RestaurantsContext(); var ownMeal = context.Meals .First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = context.MealTypes.First(t => t.Id != ownMeal.TypeId); var newName = DateTime.Now.Ticks.ToString(); var newPrice = decimal.Parse(string.Format("{0}.{1}", DateTime.Now.Ticks % 10, DateTime.Now.Ticks % 100)); var newType = type.Name; // Act this.SetAuthorizationHeaders(true); var response = this.SendEditMealRequest(ownMeal.Id, newName, newPrice, type.Id); // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var meal = response.Content.ReadAsAsync <MealViewModel>().Result; Assert.AreEqual(newName, meal.Name); Assert.AreEqual(newPrice, meal.Price); Assert.AreEqual(newType, meal.Type); }
public static void CleanDatabase() { using (var dbContext = new RestaurantsContext()) { foreach (var meal in dbContext.Meals) { dbContext.Meals.Remove(meal); } foreach (var order in dbContext.Orders) { dbContext.Orders.Remove(order); } foreach (var rating in dbContext.Ratings) { dbContext.Ratings.Remove(rating); } foreach (var restaurant in dbContext.Restaurants) { dbContext.Restaurants.Remove(restaurant); } dbContext.SaveChanges(); } }
public void EditMeal_WhenLoggedWithProperUserAndAllDataIsValid_ShouldReturnOkAndEditedMeal() { // Arrange var data = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("name", "Edited"), new KeyValuePair <string, string>("typeId", "1"), new KeyValuePair <string, string>("Price", "5.10"), }); var context = new RestaurantsContext(); var meal = context.Meals.FirstOrDefault(m => m.Name == "Valid 1"); Assert.IsNotNull(meal); // Act var response = this.EditMealByIdLogged(meal.Id, data); // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var returnedMeal = response.Content.ReadAsAsync <MealViewModel>().Result; Assert.AreEqual(returnedMeal.Name, "Edited"); var type = context.MealTypes.First(t => t.Id == 1); Assert.AreEqual(returnedMeal.Type, type.Name); Assert.AreEqual(returnedMeal.Price, 5.10m); }
public void EditNonExistingMeal_ShouldReturn404NotFound() { // Arrange RestaurantsContext dbContext = new RestaurantsContext(); var restaurant = dbContext.Restaurants.FirstOrDefault(); Meal meal = new Meal() { Name = "Tarator", Price = (decimal)1.0, Restaurant = restaurant, RestaurantId = restaurant.Id, Type = dbContext.MealTypes.Find(1), TypeId = 1 }; dbContext.Meals.Add(meal); dbContext.SaveChanges(); var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("name", "Shopska"), new KeyValuePair <string, string>("typeId", "3"), new KeyValuePair <string, string>("price", "1.1") }); // Act var httpResponse = httpClient.PutAsync("/api/meals/" + meal.Id + 1, content).Result; // Assert Assert.AreEqual(HttpStatusCode.NotFound, httpResponse.StatusCode); Assert.AreEqual(httpResponse.Content.Headers.ContentType.MediaType, "application/json"); }
private static void ClearDatabase() { var context = new RestaurantsContext(); var restourans = context.Restaurants.ToList(); while (restourans.Count != 0) { var restorant = restourans[restourans.Count - 1]; restourans.Remove(restorant); context.Restaurants.Remove(restorant); } var users = context.Users.ToList(); while (users.Count != 0) { var user = users[users.Count - 1]; users.Remove(user); context.Users.Remove(user); } var meals = context.Meals.ToList(); while (meals.Count != 0) { var meal = meals[meals.Count - 1]; meals.Remove(meal); context.Meals.Remove(meal); } context.SaveChanges(); }
public void EditOwnRestaurantMeal_WithNewCorrectData_ShouldChangeMeal_And_Return200OK() { // Arrange var context = new RestaurantsContext(); var ownMeal = context.Meals .First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = context.MealTypes.First(t => t.Id != ownMeal.TypeId); var newName = DateTime.Now.Ticks.ToString(); var newPrice = decimal.Parse(string.Format("{0}.{1}", DateTime.Now.Ticks % 10, DateTime.Now.Ticks % 100)); var newType = type.Name; // Act this.SetAuthorizationHeaders(true); var response = this.SendEditMealRequest(ownMeal.Id, newName, newPrice, type.Id); // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var meal = response.Content.ReadAsAsync<MealViewModel>().Result; Assert.AreEqual(newName, meal.Name); Assert.AreEqual(newPrice, meal.Price); Assert.AreEqual(newType, meal.Type); }
public void Create(Restaurant r) { using (var db = new RestaurantsContext()) { db.Restaurants.Add(r); db.SaveChanges(); } }
private void SeedMeals(RestaurantsContext context, List <MealType> mealTypes) { var meals = new List <Meal>() { new Meal() { Name = "Chorba", Price = 5.40m, Restaurant = new Restaurant() { Name = "Pri baba", Owner = context.Users.FirstOrDefault(u => u.UserName == TestUserUsername), Town = new Town() { Name = "Bracigovo" } }, Type = mealTypes.First() } }; foreach (var meal in meals) { context.Meals.Add(meal); } context.SaveChanges(); }
private void SeedMeals(RestaurantsContext context, List<MealType> mealTypes) { var meals = new List<Meal>() { new Meal() { Name = "French salad", Price = 5.40m, Restaurant = new Restaurant() { Name = "Pri baba", Owner = context.Users.FirstOrDefault(u => u.UserName == TestUserUsername), Town = new Town() {Name = "Bracigovo"} }, Type = mealTypes.First() } }; foreach (var meal in meals) { context.Meals.Add(meal); } context.SaveChanges(); }
public void Update(Restaurant r) { using (var db = new RestaurantsContext()) { db.Restaurants.Attach(r); db.SaveChanges(); } }
public void EditMeal_WhenDataIsValid_ShouldReturnOkAndUpdateMeal() { var loginData = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("username", "pesho"), new KeyValuePair <string, string>("password", "123456"), new KeyValuePair <string, string>("grant_type", "password") }); var response = httpClient.PostAsync("/api/account/login", loginData).Result; var token = response.Content.ReadAsAsync <LoginDto>().Result.Access_Token; httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var context = new RestaurantsContext(); int updatedTypeId = context.MealTypes.First(mt => mt.Name == "Updated Type").Id; int mealToEditId = context.Meals.First().Id; var updateMealData = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("name", "Updated Name"), new KeyValuePair <string, string>("Price", "11"), new KeyValuePair <string, string>("typeId", updatedTypeId.ToString()) }); var responsePost = httpClient.PutAsync("api/meals/" + mealToEditId, updateMealData).Result; Assert.AreEqual(HttpStatusCode.OK, responsePost.StatusCode); }
public void EditNonExistingMeal_ShouldReturn404NotFound() { // Arrange RestaurantsContext dbContext = new RestaurantsContext(); var restaurant = dbContext.Restaurants.FirstOrDefault(); Meal meal = new Meal() { Name = "Tarator", Price = (decimal)1.0, Restaurant = restaurant, RestaurantId = restaurant.Id, Type = dbContext.MealTypes.Find(1), TypeId = 1 }; dbContext.Meals.Add(meal); dbContext.SaveChanges(); var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("name", "Shopska"), new KeyValuePair<string, string>("typeId", "3"), new KeyValuePair<string, string>("price", "1.1") }); // Act var httpResponse = httpClient.PutAsync("/api/meals/" + meal.Id + 1, content).Result; // Assert Assert.AreEqual(HttpStatusCode.NotFound, httpResponse.StatusCode); Assert.AreEqual(httpResponse.Content.Headers.ContentType.MediaType, "application/json"); }
private static void SeedMeals(RestaurantsContext context) { var restourant = new Restaurant() { Name = "Seed restaurant", OwnerId = "1", Ratings = new List <Rating>(), Town = new Town() { Id = 1, Name = "Town" } }; context.Meals.Add(new Meal() { Name = "Valid 1", Price = 1, Restaurant = restourant, Type = new MealType() { Name = "Type 1" } }); context.Meals.Add(new Meal() { Name = "Valid 2", Price = 2, Restaurant = restourant, Type = new MealType() { Name = "Type 2" } }); context.Meals.Add(new Meal() { Name = "Invdalid", Price = 2, Restaurant = new Restaurant() { Name = "Seed restaurant2", Owner = new ApplicationUser() { UserName = "******", PasswordHash = "212" }, Ratings = new List <Rating>(), Town = new Town() { Id = 2, Name = "Town2" } }, Type = new MealType() { Name = "Type 2" } }); context.SaveChanges(); }
public void FilterTest() { using (var db = new RestaurantsContext()) { var result = db.Restaurants.FilterByName("Tchouchoura").FilterByZipCode("38000"); Assert.IsTrue(result.Count() > 0); } }
public void CreateDbTest() { var optionsBuilder = new DbContextOptionsBuilder().UseSqlServer(@"server=.\SQLEXPRESS;database=B3Restaurants;trusted_connection=true;"); using (var db = new RestaurantsContext(optionsBuilder.Options)) { db.Database.EnsureCreated(); } }
public void BackupDatabaseToJson(string fileName, string connectionString) { using (var db = new RestaurantsContext((new DbContextOptionsBuilder().UseSqlServer(connectionString)).Options)) { db.Database.EnsureCreated(); var restaurants = db.Restaurants.Include(r => r.Adresse).Include(r => r.LastGrade).ToList(); SaveToFile(restaurants, fileName); } }
public void EditExistingMeal_ShouldReturn200Ok_And_MealViewModel() { var db = new RestaurantsContext(); var existingMeal = db.Meals.FirstOrDefault(); if (existingMeal == null) { Assert.Fail("Failed to add meal to database."); } }
public void EditMeal_NonExistingMeal_ShouldNotReturnMealForEditing() { using (var dbContext = new RestaurantsContext()) { var httpTestServer = TestServer.Create(appBuilder => { var config = new HttpConfiguration(); WebApiConfig.Register(config); appBuilder.UseWebApi(config); }); // Arrange // Clean Database CleanDatabase(); // Create restaurant var restaurant = new Restaurant() { Id = 1, Name = "Gurlata", TownId = 1 }; // Create meal var meal = new Meal() { Id = 1, Name = "Shish kebab", Price = 18.2m, TypeId = 3, RestaurantId = 1 }; // Act -> add restaurant and meal to database dbContext.Restaurants.Add(restaurant); dbContext.Meals.Add(meal); dbContext.SaveChanges(); var mealWithNonExistingId = dbContext.Meals .Where(m => m.Id == meal.Id + 1); // Assert -> check if non existing meal returns not found var fakeMealId = meal.Id + 1; var fakeMeal = dbContext.Meals.Find(fakeMealId); Assert.IsNull(fakeMeal); CleanDatabase(); } }
public void EditMeal_NonExistingMeal_ShouldNotReturnMealForEditing() { using (var dbContext = new RestaurantsContext()) { var httpTestServer = TestServer.Create(appBuilder => { var config = new HttpConfiguration(); WebApiConfig.Register(config); appBuilder.UseWebApi(config); }); // Arrange // Clean Database CleanDatabase(); // Create restaurant var restaurant = new Restaurant() { Id = 1, Name = "Gurlata", TownId = 1 }; // Create meal var meal = new Meal() { Id = 1, Name = "Shish kebab", Price = 18.2m, TypeId = 3, RestaurantId = 1 }; // Act -> add restaurant and meal to database dbContext.Restaurants.Add(restaurant); dbContext.Meals.Add(meal); dbContext.SaveChanges(); var mealWithNonExistingId = dbContext.Meals .Where(m => m.Id == meal.Id + 1); // Assert -> check if non existing meal returns not found var fakeMealId = meal.Id + 1; var fakeMeal = dbContext.Meals.Find(fakeMealId); Assert.IsNull(fakeMeal); CleanDatabase(); } }
public static void CleanDatabase() { var dbContext = new RestaurantsContext(); dbContext.Meals.Delete(); dbContext.Restaurants.Delete(); dbContext.Towns.Delete(); dbContext.Users.Delete(); dbContext.SaveChanges(); }
public List <RestaurantViewModel> MesPremiersRestau() { using (var db = new RestaurantsContext()) { throw new Exception("Et oui, je me suis débrouillé pour faire du bug"); return(db.Restaurants.Where(r => r.ID < 10) .Select(r => new RestaurantViewModel { Name = r.name, Cuisine = r.cuisine }).ToList()); } }
public void LoadFromFileTest() { using (var db = new RestaurantsContext(optionsBuilder.Options)) { try { var restaurants = _jsonService.LoadFromFile(fileName); Assert.AreEqual(restaurants.Count, db.Restaurants.Count()); } catch (Exception) { Assert.Fail(); } } }
public void EditMeal_WithCorrectData_ShouldAllowMealEdition() { using (var dbContext = new RestaurantsContext()) { var httpTestServer = TestServer.Create(appBuilder => { var config = new HttpConfiguration(); WebApiConfig.Register(config); appBuilder.UseWebApi(config); }); // Arrange // Clean Database CleanDatabase(); // Create restaurant var restaurant = new Restaurant() { Id = 1, Name = "Gurlata", TownId = 1 }; // Create meal var meal = new Meal() { Id = 1, Name = "Kibap4ita", Price = 18.2m, TypeId = 3, RestaurantId = 1 }; // Act -> add restaurant and meal to database dbContext.Restaurants.Add(restaurant); dbContext.Meals.Add(meal); dbContext.SaveChanges(); var mealFromDb = dbContext.Meals.Find(meal.Id); mealFromDb.Name = "Kufteta"; dbContext.SaveChanges(); var editedMealFromBd = dbContext.Meals.Find(mealFromDb.Id); Assert.AreEqual(mealFromDb.Name, editedMealFromBd.Name); CleanDatabase(); } }
public void SaveToFileTest() { using (var db = new RestaurantsContext(optionsBuilder.Options)) { try { var restaurants = db.Restaurants.ToList(); _jsonService.SaveToFile(restaurants, fileName); Assert.IsTrue(System.IO.File.Exists(fileName)); } catch (Exception) { Assert.Fail(); } } }
public void GetMealsByRestaurant_ShouldReturn200OK_ExistingRestaurant() { var context = new RestaurantsContext(); var existingRestaurant = context.Restaurants.FirstOrDefault(); if (existingRestaurant == null) { Assert.Fail("Cannot perform test - no restaurants in db."); } var endPoint = string.Format("api/restaurants/{0}/meals", existingRestaurant.Id); var responce = HttpClient.GetAsync(endPoint).Result; Assert.AreEqual(HttpStatusCode.OK, responce.StatusCode); }
public void RestoreDatabaseFromJson(string fileName, string connectionString) { var restaurants = LoadFromFile(fileName); using (var db = new RestaurantsContext((new DbContextOptionsBuilder().UseSqlServer(connectionString)).Options)) { db.Database.EnsureDeleted(); db.Database.EnsureCreated(); restaurants.ForEach(r => { db.Add(r); }); db.SaveChanges(); } }
public void EditExistingOwnersMeal_ShouldReturn200OK_And_ChangedMeal() { var dbContext = new RestaurantsContext(); var meal = dbContext.Meals.First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = dbContext.MealTypes.First(t => t.Id != meal.TypeId); this.SetAuthorizationHeaders(true); var newType = type.Name; var response = this.SendEditMealRequest(meal.Id, "Italian salad", 12.43m, meal.TypeId); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var result = response.Content.ReadAsAsync<MealViewModel>().Result; Assert.AreEqual("Italian salad", result.Name); Assert.AreEqual(12.43m, result.Price); Assert.AreEqual(newType, result.Type); }
public static void CleanDatabase() { using (var dbContext = new RestaurantsContext()) { dbContext.Ratings.Delete(); dbContext.MealTypes.Delete(); dbContext.Users.Delete(); dbContext.Orders.Delete(); dbContext.Meals.Delete(); dbContext.Restaurants.Delete(); dbContext.Towns.Delete(); dbContext.SaveChanges(); } }
public void EditMealWhenLoggedWithInvalidDataShouldReturn400BadRequest() { var data = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("Price", "5.10"), }); var context = new RestaurantsContext(); var meal = context.Meals.FirstOrDefault(m => m.Name == "Valid 2"); Assert.IsNotNull(meal); var response = this.EditMealByIdLogged(meal.Id, data); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void EditMeal_WithEmptyMealName_ShouldNotAllowMealEdition() { using (var dbContext = new RestaurantsContext()) { var httpTestServer = TestServer.Create(appBuilder => { var config = new HttpConfiguration(); WebApiConfig.Register(config); appBuilder.UseWebApi(config); }); // Arrange // Clean Database CleanDatabase(); // Create restaurant var restaurant = new Restaurant() { Id = 1, Name = "Gurlata", TownId = 1 }; // Create meal var meal = new Meal() { Id = 1, Name = "Gozba", Price = 18.2m, TypeId = 3, RestaurantId = 1 }; // Act -> add restaurant and meal to database dbContext.Restaurants.Add(restaurant); dbContext.Meals.Add(meal); dbContext.SaveChanges(); var mealFromDb = dbContext.Meals.Find(meal.Id); mealFromDb.Name = ""; dbContext.SaveChanges(); CleanDatabase(); } }
public void GetMealsByRestaurant_ShouldReturn200OK_ExistingRestaurant() { var context = new RestaurantsContext(); var existingRestaurant = context.Restaurants.FirstOrDefault(); if (existingRestaurant == null) { Assert.Fail("Cannot perform test - no restaurants in db."); } var endPoint = string.Format("api/restaurants/{0}/meals", existingRestaurant.Id); var responce = HttpClient.GetAsync(endPoint).Result; Assert.AreEqual(HttpStatusCode.OK, responce.StatusCode); }
public void Seed() { var context = new RestaurantsContext(); if (!context.Users.Any(u => u.UserName == TestUserUsername)) { SeedUsers(context); } if (!context.Meals.Any()) { var mealTypes = SeedMealTypes(context); SeedMeals(context, mealTypes); } }
public void EditMealWhenLoggedWithInvalidIdShouldReturn404() { var data = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("name", "Edited"), new KeyValuePair <string, string>("typeId", "1"), new KeyValuePair <string, string>("Price", "5.10"), }); var context = new RestaurantsContext(); var meal = context.Meals.FirstOrDefault(m => m.Id == int.MaxValue); Assert.IsNull(meal); var response = this.EditMealByIdLogged(int.MaxValue, data); Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }
public void Seed() { var context = new RestaurantsContext(); if (!context.Users.Any(u => u.UserName == TestUserUsername)) { SeedUsers(context); } if (!context.Meals.Any()) { var mealTypes = SeedMealTypes(context); SeedMeals(context, mealTypes); } }
private List<MealType> SeedMealTypes(RestaurantsContext context) { var mealTypes = new List<MealType>() { new MealType() {Name = "Salad", Order = 10}, new MealType() {Name = "Soup", Order = 20} }; foreach (var mealType in mealTypes) { context.MealTypes.Add(mealType); } context.SaveChanges(); return mealTypes; }
public void TestInit() { this.httpTestServer = TestServer.Create(appBuilder => { var config = new HttpConfiguration(); WebApiConfig.Register(config); appBuilder.UseWebApi(config); }); this.httpClient = httpTestServer.HttpClient; var context = new RestaurantsContext(); context.Database.Delete(); context.Database.Create(); this.SeedDatabase(); }
public void EditMealWhenNotLoggedShouldReturn401() { var data = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("name", "Edited"), new KeyValuePair <string, string>("typeId", "1"), new KeyValuePair <string, string>("Price", "5.10"), }); var context = new RestaurantsContext(); var meal = context.Meals.FirstOrDefault(m => m.Name == "Valid 2"); Assert.IsNotNull(meal); var response = this.EditMealByIdNotLogged(meal.Id, data); Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); }
private void SeedUsers(RestaurantsContext context) { var userStore = new UserStore<ApplicationUser>(context); var userManager = new ApplicationUserManager(userStore); var user = new ApplicationUser() { UserName = TestUserUsername, Email = string.Format("{0}@gmail.com", TestUserUsername) }; var userResult = userManager.CreateAsync(user, TestUserPassword).Result; if (!userResult.Succeeded) { Assert.Fail(string.Join("\n", userResult.Errors)); } }
private static void Seed() { var db = new RestaurantsContext(); db.Restaurants.Add(new Restaurant() { Name = "Test Restaurant", OwnerId = "123owner", TownId = 1 }); db.Meals.Add(new Meal() { Name = "Baklava", Price = 5.2m, RestaurantId = 1, TypeId = 2 }); }
private static void Seed() { var context = new RestaurantsContext(); if (!context.Restaurants.Any()) { context.Restaurants.Add(new Restaurant() { Name = "Mir", TownId = 1, }); context.SaveChanges(); } if (!context.MealTypes.Any()) { var mealTypes = new[] { new MealType {Name = "Salad", Order = 10}, new MealType {Name = "Soup", Order = 20}, new MealType {Name = "Main", Order = 30}, new MealType {Name = "Dessert", Order = 40} }; foreach (var mealType in mealTypes) { context.MealTypes.Add(mealType); } context.SaveChanges(); } if (!context.Meals.Any()) { context.Meals.Add(new Meal() { Name = "Rice", Price = 10.0m, TypeId = 1, RestaurantId = 1 }); context.SaveChanges(); } }
public void EditMeal_NotOwnerUser_ShouldReturn401Unauthorized() { var context = new RestaurantsContext(); string firstUserUsername = "******" + DateTime.Now.Ticks; string firstUserPassword = "******" + DateTime.Now.Ticks; string firstUserEmail = DateTime.Now.Ticks + "@pe.tar"; string secondUserUsername = "******" + DateTime.Now.Ticks; string secondUserPassword = "******" + DateTime.Now.Ticks; string secondUserEmail = DateTime.Now.Ticks + "@sa.sho"; var registerFirstUserHttpResponse = TestingEngine.RegisterUserHttpPost(firstUserUsername, firstUserPassword, firstUserEmail); Assert.AreEqual(HttpStatusCode.OK, registerFirstUserHttpResponse.StatusCode); var registerSecondUserHttpResponse = TestingEngine.RegisterUserHttpPost(secondUserUsername, secondUserPassword, secondUserEmail); Assert.AreEqual(HttpStatusCode.OK, registerSecondUserHttpResponse.StatusCode); var loggedUserData = TestingEngine.LoginUser(firstUserUsername, firstUserPassword); Assert.AreEqual(loggedUserData.UserName, firstUserUsername); string restaurantName = "V shubraka"; int restaurantTownId = context.Towns.First().Id; var createRestaurantHttpResponse = TestingEngine.CreateRestaurantHttpPost( loggedUserData.Access_Token, restaurantName, restaurantTownId); Assert.AreEqual(HttpStatusCode.Created, createRestaurantHttpResponse.StatusCode); var createdRestaurant = createRestaurantHttpResponse.Content.ReadAsAsync<RestaurantModel>().Result; var mealName = "Leleeeee" + DateTime.Now.Ticks; var mealType = 2; var mealPrice = 100m; var mealRestaurantId = createdRestaurant.Id; var createMealHttpPost = TestingEngine.CreateMealHttpPost(loggedUserData.Access_Token, mealName, mealType, mealRestaurantId, mealPrice); var createdMeal = createMealHttpPost.Content.ReadAsAsync<MealModel>().Result; loggedUserData = TestingEngine.LoginUser(secondUserUsername, secondUserPassword); Assert.AreEqual(loggedUserData.UserName, secondUserUsername); var putResponse = TestingEngine.EditMealHttpPut(loggedUserData.Access_Token, createdMeal.Id, "Hapvanka", 1, 200m); Assert.AreEqual(HttpStatusCode.Unauthorized, putResponse.StatusCode); }
private void SeedUsers(RestaurantsContext context) { var userStore = new UserStore <ApplicationUser>(context); var userManager = new ApplicationUserManager(userStore); var user = new ApplicationUser() { UserName = TestUserUsername, Email = string.Format("{0}@gmail.com", TestUserUsername) }; var userResult = userManager .CreateAsync(user, TestUserPassword).Result; if (!userResult.Succeeded) { Assert.Fail(string.Join("\n", userResult.Errors)); } }
public void EditOwnRestaurantMeal_WithInvalidMealId_ShouldReturn400BadRequest() { // Arrange var context = new RestaurantsContext(); var ownMeal = context.Meals .First(m => m.Restaurant.Owner.UserName == TestUserUsername); var newName = DateTime.Now.Ticks.ToString(); var newPrice = decimal.Parse(string.Format("{0}.{1}", DateTime.Now.Ticks % 10, DateTime.Now.Ticks % 100)); var invalidMealType = -1; // Act this.SetAuthorizationHeaders(true); var response = this.SendEditMealRequest(ownMeal.Id, newName, newPrice, invalidMealType); // Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void EditRestaurantMeal_WithoutAccessToken_ShouldReturn401Unauthorized() { // Arrange var context = new RestaurantsContext(); var ownMeal = context.Meals .First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = context.MealTypes.First(t => t.Id != ownMeal.TypeId); var newName = DateTime.Now.Ticks.ToString(); var newPrice = decimal.Parse(string.Format("{0}.{1}", DateTime.Now.Ticks % 10, DateTime.Now.Ticks % 100)); // Act this.SetAuthorizationHeaders(false); var response = this.SendEditMealRequest(ownMeal.Id, newName, newPrice, type.Id); // Assert Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); }
public void Initialize() { // Start OWIN testing HTTP server with Web API support this.testServer = TestServer.Create(appBuilder => { var config = new HttpConfiguration(); WebApiConfig.Register(config); var startup = new Startup(); startup.Configuration(appBuilder); appBuilder.UseWebApi(config); }); this.client = this.testServer.HttpClient; this.context = new RestaurantsContext(); this.PopulateDatabase(); }
public static void BeforeAllTests() { Nav.Host = "http://localhost:44444"; RestaurantsContext restaurantsContext = new RestaurantsContext(); // Runs before any of the tests are run dataFixtures = new BddSharp.Fixtures(); if (restaurantsContext.Database.Connection.State == ConnectionState.Open) { restaurantsContext.Database.Connection.Close(); } Database.SetInitializer(new RestaurantsSeedInitializer(context => dataFixtures.Load(restaurantsContext, Assembly.GetExecutingAssembly())));; restaurantsContext.Database.Initialize(true); restaurantsContext.Database.Connection.Open(); testServer.Spawn(); }
public void CreateDbTest() { IQueryable <Restaurant> mesRestaurantsFiltres; using (var db = new RestaurantsContext()) { db.Database.EnsureCreated(); var Restau1 = new Restaurant() { name = "Tchouchoura", address = new Address() { street = "rue Ampère", zipcode = "38000" }, borough = "Grenoble", cuisine = "Balkans", grades = new List <Grade> { new Grade() { date = 456, grade = "A", score = 10 }, new Grade() { date = 789, grade = "A", score = 10 } } }; db.Restaurants.Add(Restau1); db.SaveChanges(); var result = db.Restaurants.Include(r => r.address).ToList(); mesRestaurantsFiltres = db.Restaurants.Where(r => r.ID < 5); Restau1.name = "toto"; } }
public void Edit_ShouldReturn400BadRequestWhenModelIsNull() { var context = new RestaurantsContext(); var newTown = new Town() { Name = "New town" }; context.Towns.Add(newTown); context.SaveChanges(); var newRestaurant = new Restaurant() { Name = "New restaurant", TownId = newTown.Id }; context.Restaurants.Add(newRestaurant); context.SaveChanges(); var newMeal = new Meal() { Name = "New meal", Price = 4.99M, RestaurantId = newRestaurant.Id, TypeId = 3 }; context.Meals.Add(newMeal); context.SaveChanges(); var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("name", "aaaaa") }); var response = httpClient.PutAsync(string.Format("api/meals/{0}", newMeal.Id), content).Result; Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void EditMeal_WitInvalidEditData_ShouldReturn400BadRequest() { var context = new RestaurantsContext(); string firstUserUsername = "******" + DateTime.Now.Ticks; string firstUserPassword = "******" + DateTime.Now.Ticks; string firstUserEmail = DateTime.Now.Ticks + "@pe.tar"; var registerHttpResponse = TestingEngine.RegisterUserHttpPost(firstUserUsername, firstUserPassword, firstUserEmail); Assert.AreEqual(HttpStatusCode.OK, registerHttpResponse.StatusCode); var loginUserData = TestingEngine.LoginUser(firstUserUsername, firstUserPassword); Assert.AreEqual(loginUserData.UserName, firstUserUsername); string restaurantName = "V shubraka"; int restaurantTownId = context.Towns.First().Id; var createRestaurantHttpResponse = TestingEngine.CreateRestaurantHttpPost( loginUserData.Access_Token, restaurantName, restaurantTownId); Assert.AreEqual(HttpStatusCode.Created, createRestaurantHttpResponse.StatusCode); var createdRestaurant = createRestaurantHttpResponse.Content.ReadAsAsync<RestaurantModel>().Result; var mealName = "Qdene" + DateTime.Now.Ticks; var mealType = 1; var mealPrice = 20m; var mealRestaurantId = createdRestaurant.Id; var createMealHttpPost = TestingEngine.CreateMealHttpPost(loginUserData.Access_Token, mealName, mealType, mealRestaurantId, mealPrice); var createdMeal = createMealHttpPost.Content.ReadAsAsync<MealModel>().Result; var putResponse1 = TestingEngine.EditMealHttpPut(loginUserData.Access_Token, createdMeal.Id, null, 3, 70m); Assert.AreEqual(HttpStatusCode.BadRequest, putResponse1.StatusCode); var putResponse2 = TestingEngine.EditMealHttpPut(loginUserData.Access_Token, createdMeal.Id, "mandja", null, 50m); Assert.AreEqual(HttpStatusCode.BadRequest, putResponse2.StatusCode); var putResponse3 = TestingEngine.EditMealHttpPut(loginUserData.Access_Token, createdMeal.Id, "fasul", 3, null); Assert.AreEqual(HttpStatusCode.BadRequest, putResponse3.StatusCode); }
private void SeedTown() { using (var context = new RestaurantsContext()) { var newTown = new Town() { Name = "New town" }; context.Towns.Add(newTown); context.SaveChanges(); this.townId = newTown.Id; } }
private void SeedRestaurant(LoginData loginData) { using (var context = new RestaurantsContext()) { var newRestaurant = new Restaurant() { Name = "New restaurant", TownId = townId, OwnerId = context.Users.FirstOrDefault(u => u.UserName == loginData.Username).Id }; context.Restaurants.Add(newRestaurant); context.SaveChanges(); this.restaurantId = newRestaurant.Id; } }
private void SeedMealTypes() { using (var context = new RestaurantsContext()) { var firstNewMealType = new MealType { Name = "Salad", Order = 10 }; var secondNewMealType = new MealType { Name = "Soup", Order = 20 }; context.MealTypes.Add(firstNewMealType); context.MealTypes.Add(secondNewMealType); context.SaveChanges(); this.firstMealTypeId = firstNewMealType.Id; this.secondMealTypeId = secondNewMealType.Id; } }
private void SeedMeal() { using (var context = new RestaurantsContext()) { var newMeal = new Meal() { Name = "New meal", Price = 4.99M, RestaurantId = restaurantId, TypeId = firstMealTypeId }; context.Meals.Add(newMeal); context.SaveChanges(); this.mealId = newMeal.Id; } }
public static void CleanDatabase() { using (var dbContext = new RestaurantsContext()) { foreach (var meal in dbContext.Meals) { dbContext.Meals.Remove(meal); } foreach (var order in dbContext.Orders) { dbContext.Orders.Remove(order); } foreach (var rating in dbContext.Ratings) { dbContext.Ratings.Remove(rating); } foreach (var restaurant in dbContext.Restaurants) { dbContext.Restaurants.Remove(restaurant); } dbContext.SaveChanges(); } }
public void EditNonExistingOwnersMeal_ShouldReturn404NotFound() { var dbContext = new RestaurantsContext(); var type = dbContext.MealTypes.First(); this.SetAuthorizationHeaders(true); var response = this.SendEditMealRequest(2000, "Italian salad", 12.43m, type.Id); Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }
public void EditExistingOwnersMealWithInvalidData_ShouldReturn400BadRequest() { var dbContext = new RestaurantsContext(); var meal = dbContext.Meals.First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = dbContext.MealTypes.First(t => t.Id != meal.TypeId); this.SetAuthorizationHeaders(true); var response = this.SendEditMealRequest(meal.Id, "", 12.43m, meal.TypeId); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void EditExistingMeal_AnotherOwner_ShouldReturn401Unauthorized() { var dbContext = new RestaurantsContext(); var meal = dbContext.Meals.First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = dbContext.MealTypes.First(t => t.Id != meal.TypeId); this.SetAuthorizationHeaders(false); var response = this.SendEditMealRequest(meal.Id, "Italian salad", 12.43m, meal.TypeId); Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); }
public void EditExistingMeal_ShouldReturn_200_OK() { var context = new RestaurantsContext(); var existingBug = context.Meals.FirstOrDefault(); if (existingBug == null) { Assert.Fail("Cannot perform test - no meal in DB"); } var endpoint = string.Format("api/meals/{0}", 1); var responce = httpClient.GetAsync(endpoint).Result; Assert.AreEqual(HttpStatusCode.OK, responce.StatusCode); }
public void EditOwnRestaurantMeal_WithInvalidMealId_ShouldReturn400BadRequest() { // Arrange var context = new RestaurantsContext(); var ownMeal = context.Meals .First(m => m.Restaurant.Owner.UserName == TestUserUsername); var newName = DateTime.Now.Ticks.ToString(); var newPrice = decimal.Parse(string.Format("{0}.{1}", DateTime.Now.Ticks % 10, DateTime.Now.Ticks % 100)); var invalidMealType = -1; // Act this.SetAuthorizationHeaders(true); var response = this.SendEditMealRequest(ownMeal.Id, newName, newPrice, invalidMealType); // Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void EditRestaurantMeal_WithoutAccessToken_ShouldReturn401Unauthorized() { // Arrange var context = new RestaurantsContext(); var ownMeal = context.Meals .First(m => m.Restaurant.Owner.UserName == TestUserUsername); var type = context.MealTypes.First(t => t.Id != ownMeal.TypeId); var newName = DateTime.Now.Ticks.ToString(); var newPrice = decimal.Parse(string.Format("{0}.{1}", DateTime.Now.Ticks % 10, DateTime.Now.Ticks % 100)); // Act this.SetAuthorizationHeaders(false); var response = this.SendEditMealRequest(ownMeal.Id, newName, newPrice, type.Id); // Assert Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); }