public async Task DeleteMessageByIdWithInCorrectMessageIdInputReturnFalse() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("DeleteMessageByIdWithInCorrectMessageIdInputReturnFalse") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var userStoreMock = new Mock <IUserStore <MarketplaceUser> >(); var userManagerMock = new Mock <UserManager <MarketplaceUser> >(userStoreMock.Object, null, null, null, null, null, null, null, null); var messageService = new MessageService(dbContext, mapper, userManagerMock.Object); var user = new MarketplaceUser() { Id = "cd89dcbc-bb80-4246-b9b8-ad21753111cc", Email = "*****@*****.**" }; var user1 = new MarketplaceUser() { Id = "cd89dcbc-bb80-4246-b9b8-ad2175311123", Email = "*****@*****.**" }; dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); var message = new Message() { MarketplaceUserId = user1.Id, Phone = "0883377905", Name = "Ivan", IssuedOn = DateTime.UtcNow, MessageContent = "This is test message!", Email = "*****@*****.**", MarkAsRead = false, }; dbContext.Messages.Add(message); await dbContext.SaveChangesAsync(); user.Messages.Add(message); await dbContext.SaveChangesAsync(); var userId = "cd89dcbc-bb80-4246-b9b8-ad21753111cc"; var messageId = "1"; //incorect messageId //Act var actual = await messageService.DeleteMessageById(userId, messageId); var expected = false; //Assert Assert.Equal(expected, actual); }
public async Task GetUserMessagesCorrectIdMarkAsReadSetToTrueReturnZeroMessages() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("GetUserMessagesCorrectIdMarkAsReadSetToTrueReturnZeroMessages") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var userStoreMock = new Mock <IUserStore <MarketplaceUser> >(); var userManagerMock = new Mock <UserManager <MarketplaceUser> >(userStoreMock.Object, null, null, null, null, null, null, null, null); var messageService = new MessageService(dbContext, mapper, userManagerMock.Object); var user = new MarketplaceUser() { Id = "cd89dcbc-bb80-4246-b9b8-ad21753111cc", Email = "*****@*****.**" }; var user1 = new MarketplaceUser() { Id = "cd89dcbc-bb80-4246-b9b8-ad2175311123", Email = "*****@*****.**" }; dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); var message = new Message() { MarketplaceUserId = user1.Id, Phone = "0883377905", Name = "Ivan", IssuedOn = DateTime.UtcNow, MessageContent = "This is test message!", Email = "*****@*****.**", MarkAsRead = true, }; dbContext.Messages.Add(message); await dbContext.SaveChangesAsync(); user.Messages.Add(message); await dbContext.SaveChangesAsync(); var userId = "cd89dcbc-bb80-4246-b9b8-ad21753111cc"; //Act var result = messageService.GetUserMessages <AdminMessageViewModel>(userId); var actual = result.Count(); var expected = 0; //Assert Assert.Equal(expected, actual); }
public async Task ConnectOffersAndNftIncomes() { var incomes = await _marketplaceDbContext.NftIncomingTransactions .Where(income => income.OfferId == null) .OrderBy(income => income.CollectionId) .ThenBy(income => income.TokenId) .ThenBy(income => income.UniqueProcessedBlockId) .ToListAsync(); var offers = await( from offer in _marketplaceDbContext.Offers from income in _marketplaceDbContext.NftIncomingTransactions.Where(i => i.OfferId == offer.Id) .DefaultIfEmpty() where income == null select offer ) .OrderBy(offer => offer.CollectionId) .ThenBy(offer => offer.TokenId) .ThenBy(offer => offer.CreationDate) .ToListAsync(); var incomeIndex = 0; var offerIndex = 0; while (incomeIndex < incomes.Count && offerIndex < offers.Count) { var income = incomes[incomeIndex]; var offer = offers[offerIndex]; if (income.CollectionId == offer.CollectionId && income.TokenId == offer.TokenId) { incomeIndex++; offerIndex++; income.Offer = offer; await _marketplaceDbContext.SaveChangesAsync(); } if (income.CollectionId == offer.CollectionId) { if (income.TokenId > offer.TokenId) { offerIndex++; } else { incomeIndex++; } } else { if (income.CollectionId > offer.CollectionId) { offerIndex++; } else { incomeIndex++; } } } }
public async Task GetAllWishProductsCountReturnsZero() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("GetAllWishProductsCountReturnsZero") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var userStoreMock = new Mock <IUserStore <MarketplaceUser> >(); var userManagerMock = new Mock <UserManager <MarketplaceUser> >(userStoreMock.Object, null, null, null, null, null, null, null, null); var userService = new UserService(dbContext, mapper, userManagerMock.Object); var user = new MarketplaceUser() { Id = "eb243391-a7ee-42f6-bb4e-f28c74a68d84" }; dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); //Act var actual = userService.GetAllWishProductsCount(user); var expected = 0; //Assert Assert.Equal(expected, actual); }
public async Task SeedAsync(MarketplaceDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext == null) { throw new ArgumentNullException(nameof(dbContext)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(MarketplaceDbContextSeeder)); var seeders = new List <ISeeder> { new RolesSeeder(), new CategoriesSeeder(), new SubcategoriesSeeder(), new ConditionsSeeder(), new PromotionsSeeder() }; foreach (var seeder in seeders) { await seeder.SeedAsync(dbContext, serviceProvider); await dbContext.SaveChangesAsync(); logger.LogInformation($"Seeder {seeder.GetType().Name} done."); } }
public async Task InvokeAsync(HttpContext context, RoleManager <IdentityRole> roleManager, UserManager <MarketplaceUser> userManager, MarketplaceDbContext dbContext) { if (!await roleManager.RoleExistsAsync(Infrastructure.GlobalConstants.AdministratorRole)) { await roleManager.CreateAsync(new IdentityRole(Infrastructure.GlobalConstants.AdministratorRole)); } if (!await roleManager.RoleExistsAsync(Infrastructure.GlobalConstants.UserRole)) { await roleManager.CreateAsync(new IdentityRole(Infrastructure.GlobalConstants.UserRole)); } if (!userManager.Users.Any()) { var user = new MarketplaceUser() { UserName = ADMIN_EMAIL, Email = ADMIN_EMAIL, FirstName = ADMIN_FIRST_NAME, LastName = ADMIN_LAST_NAME, ShoppingCart = new ShoppingCart() }; user.ShoppingCart.UserId = user.Id; await userManager.CreateAsync(user, ADMIN_PASSWORD); await userManager.AddToRoleAsync(user, Infrastructure.GlobalConstants.AdministratorRole); await dbContext.SaveChangesAsync(); } // Call the next delegate/middleware in the pipeline await _next(context); }
public async Task CreateIfUserDoesNotHasCartThrowExeption() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("CreateIfUserDoesNotHasCartThrowExeption") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var orderService = new OrderService(dbContext, mapper); var user = new MarketplaceUser() { Id = "8ca6c061-52de-4f0a-8885-a7501b6dae79", FirstName = "Ivan", LastName = "Ivanov", Email = "*****@*****.**" }; dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); var phone = "0883288905"; var shippingAddress = "ul.Stara Planina 23"; //Act //Assert await Assert.ThrowsAsync <NullReferenceException>(() => orderService.Create(user, phone, shippingAddress)); }
public async Task GetUserRolesWithInCorrectIdThrowsNull() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("GetUserRolesWithInCorrectIdThrowsNull") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var usersList = new List <MarketplaceUser>() { new MarketplaceUser() { Id = "eb243391-a7ee-42f6-bb4e-f28c74a68d84", FirstName = "Ivan", Email = "*****@*****.**" }, new MarketplaceUser() { Id = "eb243391-a7ee-42f6-bb4e-f28c74a68d83", FirstName = "Gosho", Email = "*****@*****.**" }, }; dbContext.Users.Add(usersList[0]); dbContext.Users.Add(usersList[1]); await dbContext.SaveChangesAsync(); var roleName = "user"; var listRoles = new List <string>() { "user", "admin" }; var userStoreMock = new Mock <IUserStore <MarketplaceUser> >(); var userManagerMock = new Mock <UserManager <MarketplaceUser> >(userStoreMock.Object, null, null, null, null, null, null, null, null); userManagerMock.Setup(x => x.GetUsersInRoleAsync(roleName)) .Returns(Task.FromResult <IList <MarketplaceUser> >(usersList.ToList())); userManagerMock.Setup(x => x.GetRolesAsync(usersList[0])) .Returns(Task.FromResult <IList <string> >(listRoles)); var userService = new UserService(dbContext, mapper, userManagerMock.Object); var id = ""; //Act var result = await userService.GetUserRoles(id); var actual = result.ToList(); var expected = new List <string>(); //Assert Assert.Equal(expected, actual); }
public async Task CreateWithInCorrectInputIdReturnFalse() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("CreateWithInCorrectInputIdReturnFalse") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var user = new MarketplaceUser() { Id = "cd89dcbc-bb80-4246-b9b8-ad21753111cc", Email = "*****@*****.**" }; var user1 = new MarketplaceUser() { Id = "cd89dcbc-bb80-4246-b9b8-ad2175311111", Email = "*****@*****.**" }; var listUsers = new List <MarketplaceUser>(); listUsers.Add(user); listUsers.Add(user1); dbContext.Users.Add(user); dbContext.Users.Add(user1); await dbContext.SaveChangesAsync(); var role = "Administrator"; var userStoreMock = new Mock <IUserStore <MarketplaceUser> >(); var userManagerMock = new Mock <UserManager <MarketplaceUser> >(userStoreMock.Object, null, null, null, null, null, null, null, null); userManagerMock.Setup(x => x.GetUsersInRoleAsync(role)) .Returns(Task.FromResult <IList <MarketplaceUser> >(listUsers.ToList())); userManagerMock.Setup(x => x.IsInRoleAsync(user, role)) .Returns(Task.FromResult(true)); var messageService = new MessageService(dbContext, mapper, userManagerMock.Object); var userId = ""; var name = "Ivan"; var email = "*****@*****.**"; var phone = "0883477980"; var message = "This is test message!"; //Act var actual = await messageService.Create(userId, name, email, phone, message); var expected = false; //Assert Assert.Equal(expected, actual); }
public async Task DeleteByIdWithInCorrectInputReturnsFalse() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("DeleteByIdWithInCorrectInputReturnsFalse") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var user = new MarketplaceUser() { Id = "eb243391-a7ee-42f6-bb4e-f28c74a68d84", FirstName = "Georgi", LastName = "Horozov", Email = "*****@*****.**" }; dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); var userStoreMock = new Mock <IUserStore <MarketplaceUser> >(); var userManagerMock = new Mock <UserManager <MarketplaceUser> >(userStoreMock.Object, null, null, null, null, null, null, null, null); userManagerMock.Setup(m => m.FindByIdAsync(user.Id)) .Returns(Task.FromResult <MarketplaceUser>(null)); var userService = new UserService(dbContext, mapper, userManagerMock.Object); var userId = "eb243391-a7ee-42f6-bb4e-f28c74a68d84"; //Act var actual = await userService.DeleteById(userId); var expected = false; //Assert Assert.Equal(expected, actual); }
public async Task CreateWithCorrectInputOrderShouldReturnTrue() { //Arrange var options = new DbContextOptionsBuilder <MarketplaceDbContext>() .UseInMemoryDatabase("AddProductShouldReturnTrue") .Options; var dbContext = new MarketplaceDbContext(options); var profile = new MarketplaceProfile(); var configuration = new MapperConfiguration(x => x.AddProfile(profile)); var mapper = new Mapper(configuration); var orderService = new OrderService(dbContext, mapper); var user = new MarketplaceUser() { Id = "8ca6c061-52de-4f0a-8885-a7501b6dae79", FirstName = "Ivan", LastName = "Ivanov", Email = "*****@*****.**" }; dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); var cart = new ShoppingCart() { Id = "86f81ed7-312e-4760-a594-1c40389440bd", UserId = user.Id }; dbContext.ShoppingCarts.Add(cart); await dbContext.SaveChangesAsync(); var product = new Product() { Id = "532b377e-83f1-43db-a697-1e623107ae60", Name = "TestProduct", Price = 5.45m, Quantity = 1 }; dbContext.Products.Add(product); await dbContext.SaveChangesAsync(); var shoppingCartProduct = new ShoppingCartProduct() { ProductId = product.Id, Quantity = product.Quantity, ShoppingCartId = cart.Id }; cart.Products.Add(shoppingCartProduct); dbContext.ShoppingCarts.Update(cart); await dbContext.SaveChangesAsync(); var phone = "0883288905"; var shippingAddress = "ul.Stara Planina 23"; //Act var actual = await orderService.Create(user, phone, shippingAddress); var expected = true; //Assert Assert.True(actual.Equals(expected)); }