public async Task Should_map_ReadPartition_and_return_the_expected_ninja() { // Arrange var clanName = "My clan"; var entities = new NinjaEntity[0]; var expectedNinja = new Ninja[0]; NinjaEntityTableStorageRepositoryMock .Setup(x => x.ReadPartitionAsync(clanName)) .ReturnsAsync(entities) .Verifiable(); NinjaMappingServiceMock .Setup(x => x.Map(entities)) .Returns(expectedNinja) .Verifiable(); // Act var result = await RepositoryUnderTest.ReadAllInClanAsync(clanName); // Assert NinjaMappingServiceMock .Verify(x => x.Map(entities), Times.Once); NinjaEntityTableStorageRepositoryMock .Verify(x => x.ReadPartitionAsync(clanName), Times.Once); Assert.Same(expectedNinja, result); }
public async Task Should_map_ReadOne_and_return_the_expected_ninja() { // Arrange var clanName = "My clan"; var ninjaKey = "123FB950-57DB-4CD0-B4D1-7E6B00A6163A"; var entity = new NinjaEntity(); var expectedNinja = new Ninja(); NinjaEntityTableStorageRepositoryMock .Setup(x => x.ReadOneAsync(clanName, ninjaKey)) .ReturnsAsync(entity) .Verifiable(); NinjaMappingServiceMock .Setup(x => x.Map(entity)) .Returns(expectedNinja) .Verifiable(); // Act var result = await RepositoryUnderTest.ReadOneAsync(clanName, ninjaKey); // Assert NinjaMappingServiceMock .Verify(x => x.Map(entity), Times.Once); NinjaEntityTableStorageRepositoryMock .Verify(x => x.ReadOneAsync(clanName, ninjaKey), Times.Once); Assert.Same(expectedNinja, result); }
protected void AssertNinjaEntityEqualNinja(NinjaEntity entity, Ninja ninja) { Assert.Equal(entity.PartitionKey, ninja.Clan.Name); Assert.Equal(entity.RowKey, ninja.Key); Assert.Equal(entity.Name, ninja.Name); Assert.Equal(entity.Level, ninja.Level); }
public async Task Should_map_InsertOrMerge_and_return_the_expected_ninja() { // Arrange var ninjaToUpdate = new Ninja(); var entityToUpdate = new NinjaEntity(); var updatedEntity = new NinjaEntity(); var expectedNinja = new Ninja(); NinjaMappingServiceMock .Setup(x => x.Map(ninjaToUpdate)) .Returns(entityToUpdate) .Verifiable(); NinjaEntityTableStorageRepositoryMock .Setup(x => x.InsertOrMergeAsync(entityToUpdate)) .ReturnsAsync(updatedEntity) .Verifiable(); NinjaMappingServiceMock .Setup(x => x.Map(updatedEntity)) .Returns(expectedNinja) .Verifiable(); // Act var result = await RepositoryUnderTest.UpdateAsync(ninjaToUpdate); // Assert NinjaMappingServiceMock.Verify(x => x.Map(ninjaToUpdate), Times.Once); NinjaEntityTableStorageRepositoryMock.Verify(x => x.InsertOrMergeAsync(entityToUpdate), Times.Once); NinjaMappingServiceMock.Verify(x => x.Map(updatedEntity), Times.Once); Assert.Same(expectedNinja, result); }
public async Task Should_create_the_ninja_in_azure_table() { // Arrange var ninjaToCreate = new Ninja { Name = "Bob", Level = 6, Key = "12345", Clan = new Clan { Name = ClanName1 } }; var ninjaBody = ninjaToCreate.ToJsonHttpContent(); var mapper = new Mappers.NinjaEntityToNinjaMapper(); NinjaEntity createdEntity = null; TableStorageMock .Setup(x => x.InsertOrReplaceAsync(It.IsAny <NinjaEntity>())) .ReturnsAsync((NinjaEntity x) => { createdEntity = x; return(x); }); // Act var result = await Client.PostAsync("v1/ninja", ninjaBody); // Assert result.EnsureSuccessStatusCode(); var ninja = await result.Content.ReadAsJsonObjectAsync <Ninja>(); Assert.NotNull(ninja); Assert.NotNull(createdEntity); AssertNinjaEntityEqualNinja(createdEntity, ninja); }
public static NinjaEntity SetupEnforceNinjaExistenceAsync(this Mock <ITableStorageRepository <NinjaEntity> > tableStorageMock, string clanName, string ninjaKey) { var entity = new NinjaEntity(); // Only need to be not null tableStorageMock .Setup(x => x.ReadOneAsync(clanName, ninjaKey)) .ReturnsAsync(entity); return(entity); }
public static NinjaEntity CreateEntity(string partitionKey, string rowKey, string name, int level) { var entity = new NinjaEntity { PartitionKey = partitionKey, RowKey = rowKey, Name = name, Level = level }; return(entity); }
protected IEnumerable <NinjaEntity> CreateEntities(int amountOfNinjaToCreate, string clanName) { for (int i = 0; i < amountOfNinjaToCreate; i++) { var ninja = new NinjaEntity { Level = i, Name = $"Ninja {i}", PartitionKey = clanName, RowKey = $"NinjaKey {i}" }; yield return(ninja); } }
public void Map_NinjaEntity_to_Ninja_should_delegate_to_NinjaEntityToNinjaMapper() { // Arrange var ninjaEntity = new NinjaEntity(); var expectedNinja = new Ninja(); NinjaEntityToNinjaMapperMock .Setup(x => x.Map(ninjaEntity)) .Returns(expectedNinja); // Act var result = ServiceUnderTest.Map(ninjaEntity); // Assert Assert.Same(expectedNinja, result); }
public void Should_return_a_well_formatted_ninja() { // Arrange var entity = new NinjaEntity { Level = 10, Name = "Some fake name", PartitionKey = "Some clan name", RowKey = "Some ninja key" }; // Act var result = MapperUnderTest.Map(entity); // Assert Assert.Equal(10, result.Level); Assert.Equal("Some fake name", result.Name); Assert.NotNull(result.Clan); Assert.Equal("Some clan name", result.Clan.Name); Assert.Equal("Some ninja key", result.Key); }
public void Should_delegate_mapping_to_the_single_entity_mapper() { // Arrange var ninja1 = new NinjaEntity(); var ninja2 = new NinjaEntity(); var ninjaEntities = new List <NinjaEntity> { ninja1, ninja2 }; NinjaEntityToNinjaMapperMock .Setup(x => x.Map(It.IsAny <NinjaEntity>())) .Returns(new Ninja()) .Verifiable(); // Act var result = MapperUnderTest.Map(ninjaEntities); // Assert NinjaEntityToNinjaMapperMock.Verify(x => x.Map(ninja1), Times.Once); NinjaEntityToNinjaMapperMock.Verify(x => x.Map(ninja2), Times.Once); }
public async Task Should_update_the_ninja_in_azure_table() { // Arrange var ninjaToUpdate = new Ninja { Clan = new Clan { Name = ClanName1 }, Key = "Some UpdateAsync Ninja Key", Name = "My new name", Level = 1234 }; var ninjaBody = ninjaToUpdate.ToJsonHttpContent(); NinjaEntity updatedEntity = null; TableStorageMock .Setup(x => x.InsertOrMergeAsync(It.IsAny <NinjaEntity>())) .ReturnsAsync((NinjaEntity n) => { updatedEntity = n; return(n); }); TableStorageMock .SetupEnforceNinjaExistenceAsync(ClanName1, ninjaToUpdate.Key); // Act var result = await Client.PutAsync("v1/ninja", ninjaBody); // Assert result.EnsureSuccessStatusCode(); var ninja = await result.Content.ReadAsJsonObjectAsync <Ninja>(); Assert.NotNull(ninja); Assert.NotNull(updatedEntity); AssertNinjaEntityEqualNinja(updatedEntity, ninja); }
public Ninja Map(NinjaEntity entity) { return(_ninjaEntityToNinjaMapper.Map(entity)); }