public async Task GetUsers_ShouldReturnAllUsers_IfTheyExist() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userQueries = new UserQueries(context, mapper); var user1 = new User { Id = 1, Name = "Person1" }; var user2 = new User { Id = 2, Name = "Person2" }; var user3 = new User { Id = 3, Name = "Person3" }; context.Users.AddRange(user1, user2, user3); context.SaveChanges(); // Act IEnumerable <UserDto> users = await userQueries.GetUsers(); // Assert Assert.NotEmpty(users); Assert.Equal(3, users.Count()); Assert.Equal(new List <int> { 1, 2, 3 }, users.Select(i => i.Id).ToList()); Assert.Equal(new List <string> { "Person1", "Person2", "Person3" }, users.Select(i => i.Name).ToList()); } }
public async Task GetItems_ShouldReturnAllItems_IfTheyExist() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var itemQueries = new ItemQueries(context, mapper); var item1 = new Item { Id = 1, Name = "Gun1" }; var item2 = new Item { Id = 2, Name = "Gun2" }; var item3 = new Item { Id = 3, Name = "Gun3" }; context.Items.AddRange(item1, item2, item3); context.SaveChanges(); // Act IEnumerable <ItemDto> items = await itemQueries.GetItems(); // Assert Assert.NotEmpty(items); Assert.Equal(3, items.Count()); Assert.Equal(new List <int> { 1, 2, 3 }, items.Select(i => i.Id).ToList()); Assert.Equal(new List <string> { "Gun1", "Gun2", "Gun3" }, items.Select(i => i.Name).ToList()); } }
public async Task RemoveItemForUser_ShouldRemoveItem_IfUserItemCanBeFoundByItemName() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); int userId = 1; int itemId = 1; string itemName = "Shortsword"; context.Add(new Item { Id = itemId, Name = itemName }); context.Add(new UserItem { ItemId = itemId, UserId = userId }); context.SaveChanges(); // Act await userItemQueries.RemoveItemForUser(userId, new ItemDto { Name = itemName }); // Assert Assert.Empty(context.UserItems); } }
public async Task DoesUserHaveItem_ShouldReturnTrue_IfCanBeMatchedOnUserAndItemName() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); int userId = 1; int itemId = 1; string itemName = "Longsword"; context.Add(new Item { Id = itemId, Name = itemName }); context.Add(new UserItem { ItemId = itemId, UserId = userId }); context.SaveChanges(); var userItemQueries = new UserItemQueries(context, mapper); // Act bool matchFound = await userItemQueries .DoesUserHaveItem(userId, new ItemDto { Name = itemName }); // Assert Assert.True(matchFound); } }
public async Task AddItemForUser_ShouldDoNothing_IfValidArgumentsAndMaximumNumberOfItemsNotReached() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); int itemId = 1; int userId = 1; context.Add(new User { Id = userId, Name = "Rick Sanchez" }); context.Add(new Item { Id = itemId, Name = "Weapon" }); for (int i = 0; i < UserItemDto.MaximumNumberOfAnyItemAllowed - 1; i++) { context.Add(new UserItem { ItemId = itemId, UserId = userId }); } context.SaveChanges(); // Act await userItemQueries.AddItemForUser(userId, new ItemDto { Id = itemId }); // Assert Assert.Equal(UserItemDto.MaximumNumberOfAnyItemAllowed, context.UserItems.Count()); } }
public async Task GetAllItemsForUser_ShouldReturnEmptyList_IfUserCannotBeMatchedOrDataDoesntExist() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); // Act IEnumerable <UserItemDto> userItems = await userItemQueries.GetAllItemsForUser(1); // Assert Assert.Empty(userItems); } }
public async Task GetItem_ShouldReturnNull_IfItemCannotBeMatchedToIncomingData() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var itemQueries = new ItemQueries(context, mapper); // Act ItemDto item = await itemQueries.GetItem(new ItemDto()); // Assert Assert.Null(item); } }
public async Task GetUser_ShouldReturnNull_IfUserWithIdCannotBeFound() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); int userId = 1; var userQueries = new UserQueries(context, mapper); // Act UserDto user = await userQueries.GetUser(userId); // Assert Assert.Null(user); } }
public async Task GetItem_ShouldReturnNull_IfItemWithIdCannotBeFound() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); int itemId = 1; var itemQueries = new ItemQueries(context, mapper); // Act ItemDto item = await itemQueries.GetItem(itemId); // Assert Assert.Null(item); } }
public async Task DoesUserHaveItem_ShouldReturnFalse_IfNoUserItemCanBeMatched() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); // Act bool matchFound = await userItemQueries .DoesUserHaveItem(1, new ItemDto { Id = 1, Name = "ExampleItem" }); // Assert Assert.False(matchFound); } }
public async Task GetMatchingItemsForUser_ShouldReturnNull_IfUserCannotBeMatchedOrDataDoesntExist() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); // Act UserItemDto userItem = await userItemQueries .GetMatchingItemsForUser(1, new ItemDto { Id = 1, Name = "Weapon" }); // Assert Assert.Null(userItem); } }
public async Task GetMatchingItemsForUser_ShouldReturnUserItem_IfUserAndItemIdCanBeMatched() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange int userId = 1; string userName = "******"; context.Add(new User { Id = userId, Name = userName }); int numberOfSwords = 46; int swordId = 1; string swordName = "Longsword"; context.Add(new Item { Id = swordId, Name = swordName }); for (int i = 0; i < numberOfSwords; i++) { context.Add(new UserItem { ItemId = swordId, UserId = userId }); } context.SaveChanges(); IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); // Act UserItemDto userItem = await userItemQueries .GetMatchingItemsForUser(userId, new ItemDto { Id = swordId }); // Assert Assert.NotNull(userItem); Assert.Equal(userId, userItem.UserId); Assert.Equal(userName, userItem.UserName); Assert.Equal(numberOfSwords, userItem.ItemCount); Assert.Equal(swordId, userItem.ItemId); Assert.Equal(swordName, userItem.ItemName); } }
public async Task AddItemForUser_ShouldDoNothing_IfUserCannotBeMatched() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); int itemId = 1; context.Add(new Item { Id = itemId, Name = "Weapon" }); context.SaveChanges(); // Act await userItemQueries.AddItemForUser(1, new ItemDto { Id = itemId }); // Assert Assert.Empty(context.UserItems); } }
public async Task RemoveItemForUser_ShouldDoNothing_IfUserItemCannotBeFound() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); int itemId = 1; context.Add(new UserItem { Id = itemId, UserId = 2 }); context.SaveChanges(); // Act await userItemQueries.RemoveItemForUser(1, new ItemDto { Id = itemId }); // Assert Assert.Single(context.UserItems); } }
public async Task GetUser_ShouldReturnUser_IfUserWithIdCanBeFound() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var userQueries = new UserQueries(context, mapper); int userId = 1; string userName = "******"; context.Users.Add(new User { Id = userId, Name = userName }); context.SaveChanges(); // Act UserDto user = await userQueries.GetUser(userId); // Assert Assert.NotNull(user); Assert.Equal(userName, user.Name); Assert.Equal(userId, user.Id); } }
public async Task GetItem_ShouldReturnItem_IfItemCanBeMatchedByIncomingId() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange IMapper mapper = GetAutoMapperMapper(); var itemQueries = new ItemQueries(context, mapper); int itemId = 1; string itemName = "Weapon"; context.Items.Add(new Item { Id = itemId, Name = itemName }); context.SaveChanges(); // Act ItemDto item = await itemQueries.GetItem(new ItemDto { Id = itemId }); // Assert Assert.NotNull(item); Assert.Equal(itemName, item.Name); Assert.Equal(itemId, item.Id); } }
public async Task GetAllItemsForUser_ShouldReturnListOfUserItemsWithCorrectCounts_IfDataCanBeMatched() { using (ApplicationDbContext context = ApplicationDbContextHelper.GetContext()) { // Arrange int userId = 1; string userName = "******"; context.Add(new User { Id = userId, Name = userName }); int numberOfSwords = 46; int swordId = 1; string swordName = "Longsword"; context.Add(new Item { Id = swordId, Name = swordName }); int numberOfBatteries = 3; int batteryId = 2; string batteryName = "Large Battery"; context.Add(new Item { Id = batteryId, Name = batteryName }); for (int i = 0; i < numberOfSwords; i++) { context.Add(new UserItem { ItemId = swordId, UserId = userId }); } for (int i = 0; i < numberOfBatteries; i++) { context.Add(new UserItem { ItemId = batteryId, UserId = userId }); } context.SaveChanges(); IMapper mapper = GetAutoMapperMapper(); var userItemQueries = new UserItemQueries(context, mapper); // Act IEnumerable <UserItemDto> actualUserItems = await userItemQueries.GetAllItemsForUser(userId); // Assert var expectedUserItems = new List <UserItemDto> { new UserItemDto { UserId = userId, UserName = userName, ItemCount = numberOfSwords, ItemId = swordId, ItemName = swordName }, new UserItemDto { UserId = userId, UserName = userName, ItemCount = numberOfBatteries, ItemId = batteryId, ItemName = batteryName } }; Assert.Equal ( JsonConvert.SerializeObject(expectedUserItems), JsonConvert.SerializeObject(actualUserItems) ); } }