Exemplo n.º 1
0
        public async Task DeleteAsyncShouldWorkCorrectly()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;

            using var db = new ApplicationDbContext(options);

            var trophyRepository = new EfDeletableEntityRepository <Trophy>(db);

            var service = new TrophiesService(null, trophyRepository);

            await trophyRepository.AddAsync(new Trophy { Id = 1 });

            await trophyRepository.AddAsync(new Trophy { Id = 2 });

            await trophyRepository.AddAsync(new Trophy { Id = 3 });

            await trophyRepository.SaveChangesAsync();

            Assert.Equal(3, service.GetCount());

            await service.DeleteAsync(1);

            await trophyRepository.SaveChangesAsync();

            Assert.Equal(2, service.GetCount());

            await service.DeleteAsync(2);

            await trophyRepository.SaveChangesAsync();

            Assert.Equal(1, service.GetCount());
        }
Exemplo n.º 2
0
        public void GetByIdShouldWorkCorrect()
        {
            var trophiesList = new List <Trophy>
            {
                new Trophy {
                    Id = 1, BaitDescription = "a"
                },
                new Trophy {
                    Id = 22, BaitDescription = "bc"
                },
            };

            var repository = new Mock <IDeletableEntityRepository <Trophy> >();

            repository.Setup(r => r.All()).Returns(trophiesList.AsQueryable());

            var service = new TrophiesService(null, repository.Object);

            AutoMapperConfig.RegisterMappings(typeof(TrophyModel).Assembly);

            var trophy = service.GetById <TrophyModel>(22);

            Assert.Equal(22, trophy.Id);
            Assert.Equal("bc", trophy.BaitDescription);
        }
Exemplo n.º 3
0
        public async Task AddAsyncShouldWorkCorrect()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;

            using var db = new ApplicationDbContext(options);
            var trophyRepository = new EfDeletableEntityRepository <Trophy>(db);

            var clodinaryMock = new Mock <ICloudinaryService>();

            var service = new TrophiesService(clodinaryMock.Object, trophyRepository);

            // Arrange
            var fileMock = new Mock <IFormFile>();

            // Setup mock file using a memory stream
            var content  = "Hello World from a Fake File";
            var fileName = "test.jpg";
            var ms       = new MemoryStream();

            using var writer = new StreamWriter(ms);
            writer.Write(content);
            writer.Flush();
            ms.Position = 0;
            fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
            fileMock.Setup(_ => _.FileName).Returns(fileName);
            fileMock.Setup(_ => _.Length).Returns(ms.Length);

            var file = fileMock.Object;

            var input = new AddTrophyInputModel
            {
                LakeId          = 1,
                BaitDescription = "corn",
                RigId           = null,
                Weight          = 12.500,
                MainImage       = file,
                OtherImages     = new List <IFormFile> {
                    file
                },
            };

            Assert.Equal(0, service.GetCount());

            await service.AddAsync(input, Guid.NewGuid().ToString());

            await trophyRepository.SaveChangesAsync();

            Assert.Equal(1, service.GetCount());
        }
Exemplo n.º 4
0
        public void GetCountShouldWorkCorrect()
        {
            var trophiesList = new List <Trophy>
            {
                new Trophy(),
                new Trophy(),
                new Trophy(),
            };

            var repository = new Mock <IDeletableEntityRepository <Trophy> >();

            repository.Setup(r => r.All()).Returns(trophiesList.AsQueryable());

            var service = new TrophiesService(null, repository.Object);

            Assert.Equal(3, service.GetCount());
        }
Exemplo n.º 5
0
        public void GetTopFiveBiggestTrophiesShuldWorkCorrect()
        {
            var trophiesList = new List <Trophy>
            {
                new Trophy {
                    Id = 1, Weight = 5
                },
                new Trophy {
                    Id = 2, Weight = 40
                },
                new Trophy {
                    Id = 3, Weight = 30
                },
                new Trophy {
                    Id = 4, Weight = 20
                },
                new Trophy {
                    Id = 5, Weight = 10
                },
                new Trophy {
                    Id = 6, Weight = 50
                },
            };

            var repository = new Mock <IDeletableEntityRepository <Trophy> >();

            repository.Setup(r => r.All()).Returns(trophiesList.AsQueryable());

            var service = new TrophiesService(null, repository.Object);

            AutoMapperConfig.RegisterMappings(typeof(TrophyModel).Assembly);

            var trophiesResult = service.GetTopFiveBiggestTrophies <TrophyModel>();

            Assert.Equal(5, trophiesResult.Count());

            // biggest first
            Assert.Equal(6, trophiesResult.First().Id);
            Assert.Equal(50, trophiesResult.First().Weight);

            // smallest from top 5 last
            Assert.Equal(5, trophiesResult.Last().Id);
            Assert.Equal(10, trophiesResult.Last().Weight);
        }
Exemplo n.º 6
0
        public void GetTrophyOwnerIdShouldWorkCorrectly()
        {
            var trophiesList = new List <Trophy>()
            {
                new Trophy {
                    Id = 1, OwnerId = "asdas123"
                },
            };

            var repository = new Mock <IDeletableEntityRepository <Trophy> >();

            repository.Setup(r => r.All()).Returns(trophiesList.AsQueryable());

            var service = new TrophiesService(null, repository.Object);

            var result = service.GetTrophyOwnerId(1);

            Assert.Equal("asdas123", result);
        }
Exemplo n.º 7
0
        public void GetAllShouldWorkCorrect()
        {
            var trophiesList = new List <Trophy>
            {
                new Trophy(),
                new Trophy(),
                new Trophy(),
            };

            var repository = new Mock <IDeletableEntityRepository <Trophy> >();

            repository.Setup(r => r.All()).Returns(trophiesList.AsQueryable());

            var service = new TrophiesService(null, repository.Object);

            AutoMapperConfig.RegisterMappings(typeof(TrophyModel).Assembly);

            Assert.Equal(3, service.GetAll <TrophyModel>(1, 6).Count());
        }
Exemplo n.º 8
0
        public async Task UpdateAsyncShouldWorkCorrect()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;

            using var db = new ApplicationDbContext(options);
            var trophyRepository = new EfDeletableEntityRepository <Trophy>(db);

            var service = new TrophiesService(null, trophyRepository);

            await trophyRepository.AddAsync(new Trophy
            {
                Id              = 1,
                Weight          = 50,
                BaitDescription = "corn",
                LakeId          = 1,
                OwnerId         = "asdasd123",
            });

            await trophyRepository.SaveChangesAsync();

            var input = new EditTrophyInputModel
            {
                Weight          = 49,
                BaitDescription = "grass",
            };

            await service.UpdateAsync(1, input);

            await trophyRepository.SaveChangesAsync();

            AutoMapperConfig.RegisterMappings(typeof(TrophyModel).Assembly);
            var trophy = service.GetById <TrophyModel>(1);

            Assert.Equal(49, trophy.Weight);
            Assert.Equal("grass", trophy.BaitDescription);
        }
Exemplo n.º 9
0
        public void CreateTrophyShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateTrophy_Trophies_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService = new TownsService(dbContext);

            var mockUserStore = new Mock <IUserStore <FooteoUser> >();
            var userManager   = new Mock <UserManager <FooteoUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null);

            var town = townsService.CreateTown("Sofia");

            var user = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = $"*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = $"footeoPlayer",
                Town         = town,
                PasswordHash = "123123",
                Player       = new Player
                {
                    FullName = "Footeo Player"
                }
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            userManager.Setup(u => u.RemoveFromRoleAsync(user, "Player")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(user, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(user, "Captain")).Returns(Task.FromResult(IdentityResult.Success));

            var leaguesService     = new LeaguesService(dbContext, townsService);
            var teamsService       = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);
            var teamLeaguesService = new TeamLeaguesService(dbContext, teamsService, leaguesService);
            var trophiesService    = new TrophiesService(dbContext, teamLeaguesService);

            teamsService.CreateTeam("TeamWinner", "TWR", user.UserName);
            var team = dbContext.Teams.FirstOrDefault(t => t.Name == "TeamWinner");

            leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow.AddDays(7), DateTime.UtcNow.AddMonths(2), "Sofia");
            var league = dbContext.Leagues.FirstOrDefault(l => l.Name == "League");

            leaguesService.SetLeagueStatusToCompleted(league.Id);

            var teamLeague = new TeamLeague
            {
                Team   = team,
                League = league
            };

            dbContext.TeamsLeagues.Add(teamLeague);
            dbContext.SaveChanges();

            trophiesService.CreateTrophy(league.Id);

            var hasTeamTrophy = team.Trophies.Any();

            Assert.True(hasTeamTrophy);
        }