示例#1
0
            public async void ShouldCreateAndReturnTheCreatedNinja()
            {
                //Arrange
                var clanName      = "Some clan name";
                var expectedNinja = new Ninja {
                    Name = "Test Ninja 1", Clan = new Clan {
                        Name = clanName
                    }
                };

                ClanServiceMock
                .Setup(x => x.IsClanExistsAsync(expectedNinja.Clan.Name))
                .ReturnsAsync(true)
                .Verifiable();
                NinjaRepositoryMock
                .Setup(x => x.CreateAsync(expectedNinja))
                .ReturnsAsync(expectedNinja)
                .Verifiable();

                //Act
                var result = await ServiceUnderTest.CreateAsync(expectedNinja);

                //Assert
                Assert.Same(expectedNinja, result);
                ClanServiceMock.Verify(x => x.IsClanExistsAsync(clanName), Times.Once);
                NinjaRepositoryMock.Verify(x => x.CreateAsync(expectedNinja), Times.Once);
            }
示例#2
0
            public async void ShouldReturnExpectedNinjaInClan()
            {
                //Arrange
                var clanName      = "Some clan name";
                var ninjaKey      = "SomeNinjaKey";
                var expectedNinja = new Ninja {
                    Name = "Test Ninja 1", Clan = new Clan {
                        Name = clanName
                    }, Key = ninjaKey
                };

                NinjaRepositoryMock
                .Setup(x => x.ReadOneAsync(clanName, ninjaKey))
                .ReturnsAsync(expectedNinja)
                .Verifiable();
                ClanServiceMock
                .Setup(x => x.IsClanExistsAsync(clanName))
                .ReturnsAsync(true)
                .Verifiable();

                //Act
                var result = await ServiceUnderTest.ReadOneAsync(clanName, ninjaKey);

                //Assert
                Assert.Same(expectedNinja, result);
                NinjaRepositoryMock.Verify(x => x.ReadOneAsync(clanName, ninjaKey), Times.Once);
                ClanServiceMock.Verify(x => x.IsClanExistsAsync(clanName), Times.Once);
            }
示例#3
0
            public async void ShouldThrowClanNotFoundExceptionWhenClanDoesNotExist()
            {
                //Arrange
                var unexistingClanName = "Some clan name";

                NinjaRepositoryMock
                .Setup(x => x.ReadAllClanAsync(unexistingClanName))
                .Verifiable();
                ClanServiceMock
                .Setup(x => x.IsClanExistsAsync(unexistingClanName))
                .ReturnsAsync(false)
                .Verifiable();

                //Act & Assert
                await Assert.ThrowsAsync <ClanNotFoundException>(() => ServiceUnderTest.ReadAllClanAsync(unexistingClanName));

                NinjaRepositoryMock.Verify(x => x.ReadAllClanAsync(unexistingClanName), Times.Never);
                ClanServiceMock.Verify(x => x.IsClanExistsAsync(unexistingClanName), Times.Once);
            }
示例#4
0
            public async void ShouldThrowNinjaNotFoundExceptionWhenNinjaDoesNotExist()
            {
                //Arrange
                var clanName = "Some clan name";
                var ninjaKey = "SomeNinjaKey";

                NinjaRepositoryMock
                .Setup(x => x.ReadOneAsync(clanName, ninjaKey))
                .ThrowsAsync(new NinjaNotFoundException(clanName, ninjaKey))
                .Verifiable();
                ClanServiceMock
                .Setup(x => x.IsClanExistsAsync(clanName))
                .ReturnsAsync(true)
                .Verifiable();

                //Act & Assert
                await Assert.ThrowsAsync <NinjaNotFoundException>(() => ServiceUnderTest.ReadOneAsync(clanName, ninjaKey));

                NinjaRepositoryMock.Verify(x => x.ReadOneAsync(clanName, ninjaKey), Times.Once);
                ClanServiceMock.Verify(x => x.IsClanExistsAsync(clanName), Times.Once);
            }
示例#5
0
            public async void ShouldReturnAllNinjasInClan()
            {
                //Arrange
                var clanName       = "Some clan name";
                var expectedNinjas = new Ninja[]
                {
                    new Ninja {
                        Name = "Test Ninja 1"
                    },
                    new Ninja {
                        Name = "Test Ninja 2"
                    },
                    new Ninja {
                        Name = "Test Ninja 3"
                    }
                };

                NinjaRepositoryMock
                .Setup(x => x.ReadAllClanAsync(clanName))
                .ReturnsAsync(expectedNinjas)
                .Verifiable();
                ClanServiceMock
                .Setup(x => x.IsClanExistsAsync(clanName))
                .ReturnsAsync(true)
                .Verifiable();

                //Act
                var result = await ServiceUnderTest.ReadAllClanAsync(clanName);

                //Assert
                Assert.Same(expectedNinjas, result);
                NinjaRepositoryMock
                .Verify(x => x.ReadAllClanAsync(clanName), Times.Once);
                ClanServiceMock
                .Verify(x => x.IsClanExistsAsync(clanName), Times.Once);
            }
示例#6
0
            public async void ShouldThrowClanNotFoundExceptionWhenClanDoesNotExist()
            {
                //Arrange
                var clanName      = "Some clan name";
                var expectedNinja = new Ninja {
                    Name = "Test Ninja 1", Clan = new Clan {
                        Name = clanName
                    }
                };

                ClanServiceMock
                .Setup(x => x.IsClanExistsAsync(expectedNinja.Clan.Name))
                .ReturnsAsync(false)
                .Verifiable();
                NinjaRepositoryMock
                .Setup(x => x.CreateAsync(expectedNinja))
                .Verifiable();

                //Act & Assert
                await Assert.ThrowsAsync <ClanNotFoundException>(() => ServiceUnderTest.CreateAsync(expectedNinja));

                ClanServiceMock.Verify(x => x.IsClanExistsAsync(clanName), Times.Once);
                NinjaRepositoryMock.Verify(x => x.CreateAsync(expectedNinja), Times.Never);
            }