Esempio n. 1
0
            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);
            }
Esempio n. 2
0
            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);
            }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
            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);
            }
Esempio n. 5
0
            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);
        }
Esempio n. 8
0
 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);
                }
Esempio n. 12
0
            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);
            }
Esempio n. 13
0
 public Ninja Map(NinjaEntity entity)
 {
     return(_ninjaEntityToNinjaMapper.Map(entity));
 }