Пример #1
0
        public async Task AddCharacterStringEntryVoteAsync_DoesntAddStringVote_WhenRequiredEntitiesDontExist()
        {
            //ARRANGE
            var user = new User {
                Email = "*****@*****.**", UserName = "******"
            };
            var game = new Game {
                Name = "Test", Status = EntityStatus.Active
            };
            var character1 = new Character {
                Name = "Test1", Status = EntityStatus.Active, Game = game
            };
            var stringEntry = new CharacterStringEntry {
                User = user, Type = CharacterStringEntryType.Tips, Text = ""
            };

            character1.StringEntries.Add(stringEntry);
            fixture.Context.Characters.Add(character1);
            fixture.Context.Users.Add(user);
            fixture.Context.SaveChanges();
            var count = await fixture.Context.StringEntries.SelectMany(se => se.Votes).CountAsync();

            //ACT
            var result1 = await service.AddCharacterStringEntryVoteAsync(CharacterStringEntryType.Tips, user.Id, character1.Id, 999);

            var result2 = await service.AddCharacterStringEntryVoteAsync(CharacterStringEntryType.Tips, user.Id, 999, stringEntry.Id);

            var result3 = await service.AddCharacterStringEntryVoteAsync(CharacterStringEntryType.Tips, Guid.NewGuid().ToString(), character1.Id, stringEntry.Id);


            //ASSERT
            Assert.False(result1);
            Assert.False(result2);
            Assert.False(result3);
            Assert.Equal(count, await fixture.Context.StringEntries.SelectMany(se => se.Votes).CountAsync());
        }