コード例 #1
0
        public async Task EnrollingUserTwoTimesToGroupTripWhichHeCreatedShoudThrowException()
        {
            var groupTripslist = new List <GroupTrip>
            {
                new GroupTrip
                {
                    Id        = 1,
                    HostId    = "1",
                    FreeSeats = 3,
                },
            };

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            var exception = await Assert.ThrowsAsync <OperationCanceledException>(async() => await service.EnrollUser(1, "1"));

            var message = "Не може да се запишете за излет създаден от вас!";

            Assert.Equal(message, exception.Message);
        }
コード例 #2
0
        public async Task EnrollingUserToGroupTripShoudIncreaseGuestsCount()
        {
            var groupTripslist = new List <GroupTrip>
            {
                new GroupTrip
                {
                    Id        = 1,
                    HostId    = "2",
                    FreeSeats = 3,
                },
            };

            var userGroupTripsList = new List <UserGroupTrip>();

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            mockUserGroupTripRepo.Setup(x => x.AllAsNoTracking()).Returns(userGroupTripsList.AsQueryable());

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            await service.EnrollUser(1, "3");

            Assert.Single(groupTripslist.ElementAt(0).Guests);
        }
コード例 #3
0
        public void CreatePlayerShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreatePlayer_Players_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Vraca");

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

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

            var playersService = new PlayersService(dbContext, null, null, null);

            var player = new Player
            {
                FullName = "Footeo Player"
            };

            playersService.CreatePlayer(user, player);

            Assert.NotNull(user.Player);
        }
コード例 #4
0
        public void CreateRefereeShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateReferee_Referees_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Haskovo");

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

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

            var refereesService = new RefereesService(dbContext, null, null);

            var referee = new Referee
            {
                FullName = $"Footeo Referee"
            };

            refereesService.CreateReferee(user, referee);

            Assert.NotNull(user.Referee);
        }
コード例 #5
0
        public void SetLeagueStatusToCompletedAndReturnAllCompletedLeagues()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CompletedLeagues_Leagues_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            for (int i = 1; i <= 5; i++)
            {
                leaguesService.CreateLeague($"League{i}", $"Description{i}", DateTime.UtcNow.AddDays(i), DateTime.UtcNow.AddDays(i * i), "Sofia");
            }

            var leagues = dbContext.Leagues.ToList();

            foreach (var league in leagues)
            {
                leaguesService.SetLeagueStatusToCompleted(league.Id);
            }

            var completedLeagues = leaguesService.AllCompletedLeagues <CompletedLeagueViewModel>().ToList();

            var completedLeaguesCount = completedLeagues.Count;

            var expectedCompletedLeaguesCount = 5;

            Assert.AreEqual(expectedCompletedLeaguesCount, completedLeaguesCount);
        }
コード例 #6
0
        public void AllFixturesByLeagueIdShouldReturnCorrectCount()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "AllFixturesByLeague_Fixtures_DB")
                          .Options;

            var dbContext       = new FooteoDbContext(options);
            var townsService    = new TownsService(dbContext);
            var leaguesService  = new LeaguesService(dbContext, townsService);
            var fixturesService = new FixturesService(dbContext, leaguesService);

            leaguesService.CreateLeague("League2", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Varna");

            var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League2");

            for (int i = 1; i <= 20; i++)
            {
                fixturesService.CreateFixture($"Matchday {i}", DateTime.UtcNow.AddDays(i + 7), league.Id);
            }

            var fixtures = fixturesService.AllFixtures <FixtureViewModel>(league.Id).ToList();

            var expectedFixtures = 20;

            Assert.AreEqual(expectedFixtures, fixtures.Count);
        }
コード例 #7
0
        public void IsTeamInLeagueShouldReturnTrue()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "IsTeamInLeagueTrue_Teams_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            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("Stara Zagora");

            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 teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);

            teamsService.CreateTeam("Team", "TTT", user.UserName);
            var team = dbContext.Teams.FirstOrDefault(n => n.Name == "Team");

            leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Stara Zagora");
            var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League");

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

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

            var isTeamInLeague = teamsService.IsTeamInLeague(team.Id);

            Assert.True(isTeamInLeague);
        }
コード例 #8
0
        public void InitializeTests()
        {
            this.dbContext = MockDbContext.GetDbContext();
            var mapper = MockAutoMapper.GetMapper();

            this.townsService     = new TownsService(dbContext, mapper);
            this.companiesService = new CompaniesService(dbContext, mapper, townsService);
        }
コード例 #9
0
ファイル: TownsServiceTests.cs プロジェクト: Dimitrix85/STEU
        private TownsService IntializeTownsService(SteuDbContext context)
        {
            var repository = new EfRepository <Town>(context);

            MapperInitializer.InitializeMapper();
            var service = new TownsService(repository);

            return(service);
        }
コード例 #10
0
ファイル: TownsServiceTests.cs プロジェクト: Dimitrix85/STEU
        public async Task GetOrCreateTownByName_WithData_ShouldReturnTown()
        {
            var          context    = SteuDbContextInMemoryFactory.InitializeContext();
            TownsService service    = this.IntializeTownsService(context);
            var          repository = new EfRepository <Town>(context);

            var actualResult = service.GetOrCreateTownByName("Sofia");

            Assert.Equal("Sofia", actualResult.Name);
        }
コード例 #11
0
        public void GetAllForSelectListShouldReturnAllFishspeciesAndOrderThemAlphabeticllyByName()
        {
            var fishSpeciesList = new List <FishSpecies>
            {
                new FishSpecies
                {
                    Id   = 1,
                    Name = "b",
                },
                new FishSpecies
                {
                    Id   = 2,
                    Name = "a",
                },
                new FishSpecies
                {
                    Id   = 3,
                    Name = "d",
                },
                new FishSpecies
                {
                    Id   = 4,
                    Name = "c",
                },
            };

            var fishSpeciesRepo = new Mock <IDeletableEntityRepository <FishSpecies> >();

            fishSpeciesRepo.Setup(x => x.AllAsNoTracking()).Returns(fishSpeciesList.AsQueryable());

            var commentRepo    = new Mock <IDeletableEntityRepository <Comment> >();
            var commentService = new CommentService(commentRepo.Object);

            var fishRepo    = new Mock <IDeletableEntityRepository <Fish> >();
            var fishService = new FishServices(fishRepo.Object);

            var townRepo    = new Mock <IDeletableEntityRepository <Town> >();
            var townService = new TownsService(townRepo.Object);

            var tripsRepo    = new Mock <IDeletableEntityRepository <Trip> >();
            var tripsService = new TripsService(commentService, tripsRepo.Object, fishService, townService);

            var fishSpeciesService = new FishSpeciesService(fishSpeciesRepo.Object, tripsService);

            var fishSpeciesFromService = fishSpeciesService.GetAllForSelectList();

            Assert.Equal(fishSpeciesList.Count, fishSpeciesFromService.Count());
            Assert.Collection(
                fishSpeciesFromService,
                item => Assert.Equal(fishSpeciesList.ElementAt(1).Name, item.Name),
                item => Assert.Equal(fishSpeciesList.ElementAt(0).Name, item.Name),
                item => Assert.Equal(fishSpeciesList.ElementAt(3).Name, item.Name),
                item => Assert.Equal(fishSpeciesList.ElementAt(2).Name, item.Name));
        }
コード例 #12
0
        void Reload()
        {
            Towns.Clear();
            var townsService = new TownsService();
            var townsList    = townsService.GetAsync().Result;

            foreach (var n in townsList)
            {
                Towns.Add(n.TownName);
            }
        }
コード例 #13
0
        public async Task CreatingGroupTripShouldIncreaseGroupTripsCount()
        {
            var groupTripslist = new List <GroupTrip>()
            {
                new GroupTrip
                {
                    Id = 1,
                },
                new GroupTrip
                {
                    Id = 2,
                },
                new GroupTrip
                {
                    Id = 3,
                },
            };

            var userGroupTripsList = new List <UserGroupTrip>();

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            mockUserGroupTripRepo.Setup(x => x.AllAsNoTracking()).Returns(userGroupTripsList.AsQueryable());

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            var groupTrip = new GroupTripCreateInputModel
            {
                WaterPoolName         = "река Марица",
                Description           = "асдасдасдадс",
                MeetingTime           = DateTime.UtcNow.AddDays(1),
                MeetingSpotLatitude   = 1,
                MeetingSpotLongtitude = 1,
                FishingTime           = DateTime.UtcNow.AddDays(2),
                FishingSpotLatitude   = 2,
                FishingSpotLongtitude = 2,
                FreeSeats             = 2,
                FishingMethodId       = 3,
                TargetFishSpeciesId   = 5,
            };

            await service.CreateAsync(groupTrip, "1");

            Assert.Equal(4, groupTripslist.Count());
        }
コード例 #14
0
        public TownsServiceTests()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var repo    = new EfDeletableEntityRepository <Town>(new ApplicationDbContext(options.Options));
            var service = new TownsService(repo);

            AutoMapperConfig.RegisterMappings(
                typeof(TownsIndexViewModel).GetTypeInfo().Assembly);

            this.townsService = service;
            this.repository   = repo;
        }
コード例 #15
0
        public void AllAwayMatchesByTeamIdShouldReturnNone()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "AllAwayMatchesNone_Teams_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            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("Ruse");

            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 teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);

            teamsService.CreateTeam("Team4", "TTT", user.UserName);
            var team = dbContext.Teams.FirstOrDefault(n => n.Name == "Team4");

            var allAwayMatches           = teamsService.AllAwayMatchesByTeamId(team.Id).ToList();
            var allAwayMatchesCount      = allAwayMatches.Count;
            var expectedAwayMatchesCount = 0;

            Assert.AreEqual(expectedAwayMatchesCount, allAwayMatchesCount);
        }
コード例 #16
0
        public void TeamExistsByNameShouldReturnFalse()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "TeamExistsByNameFalse_Teams_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            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 teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);

            teamsService.CreateTeam("Team", "TTT", user.UserName);
            var team = dbContext.Teams.FirstOrDefault(n => n.Name == "Team");

            var invalidTeamName = "Teeeeaaaam";
            var teamExists      = teamsService.TeamExistsByName(invalidTeamName);

            Assert.False(teamExists);
        }
コード例 #17
0
        public void GetTownByNameShouldReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "GetTownByName_Towns_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService = new TownsService(dbContext);

            townsService.CreateTown("Sofia");

            var town = townsService.GetTownByName <Town>("Burgas");

            Assert.Null(town);
        }
コード例 #18
0
        public void GetTeamByIdShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "GetTeamById_Teams_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            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("Plovdiv");

            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 teamsService = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);

            teamsService.CreateTeam("Team1", "TTT", user.UserName);
            var teamId = dbContext.Teams.FirstOrDefault(n => n.Name == "Team1").Id;

            var team = teamsService.GetTeamById <TeamViewModel>(teamId);

            Assert.NotNull(team);
        }
コード例 #19
0
        public void PlayerHasATeamShouldReturnTrue()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "PlayerHasATeamTrue_Players_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);
            var town         = townsService.CreateTown("Vraca");

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

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

            var playersService = new PlayersService(dbContext, null, null, null);

            var player = new Player
            {
                FullName = "Footeo Player"
            };

            playersService.CreatePlayer(user, player);

            var playerUser = dbContext.Players.FirstOrDefault(p => p.FullName == "Footeo Player");

            playerUser.Team = new Team
            {
                Name     = "Team",
                Initials = "TTT"
            };
            dbContext.SaveChanges();

            var playerHasATeam = playersService.PlayerHasATeam(user.UserName);

            Assert.True(playerHasATeam);
        }
コード例 #20
0
        public async Task GetAllItemsAsync()
        {
            this.towns.DeleteMany(_ => true);
            this.towns.InsertOne(new Town {
                Id = "1", Name = "Goslar"
            });
            this.towns.InsertOne(new Town {
                Id = "2", Name = "Oker"
            });

            var service = new TownsService(this.Options);
            var result  = await service.GetAllItemsAsync().ConfigureAwait(false);

            Assert.That(result.Count, Is.EqualTo(2));
            Assert.That(result.First().Name, Is.EqualTo("Goslar"));
            Assert.That(result.Skip(1).First().Name, Is.EqualTo("Oker"));
        }
コード例 #21
0
        public void LeagueExistsByNameShouldReturnTrue()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "LeagueExistsByName_Leagues_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            leaguesService.CreateLeague("League", "Description", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia");
            var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League");

            var leagueExists = leaguesService.LeagueExistsByName(league.Name);

            Assert.True(leagueExists);
        }
コード例 #22
0
        public void GetLeagueByIdShouldReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "GetLeagueByName_Leagues_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            leaguesService.CreateLeague("League", "Description", DateTime.UtcNow, DateTime.UtcNow.AddMonths(2), "Sofia");

            var invalidLeagueId = 2;
            var league          = leaguesService.GetLeagueById <League>(invalidLeagueId);

            Assert.Null(league);
        }
コード例 #23
0
        public void FieldExistsByNameShouldReturnFalse()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "FieldExists_Fields_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService  = new TownsService(dbContext);
            var fieldsService = new FieldsService(dbContext, townsService);

            fieldsService.CreateField("Field", "Address", true, "Burgas");

            var fieldNameForTest = "Field1";
            var fieldExists      = fieldsService.FieldExistsByName(fieldNameForTest);

            Assert.False(fieldExists);
        }
コード例 #24
0
        public async Task EnrollingUserTwoTimesToThesameTripShoudThrowAnError()
        {
            var groupTripslist = new List <GroupTrip>
            {
                new GroupTrip
                {
                    Id        = 1,
                    HostId    = "2",
                    FreeSeats = 3,
                },
            };

            var userGroupTripsList = new List <UserGroupTrip>
            {
                new UserGroupTrip
                {
                    Id          = 1,
                    GuestId     = "1",
                    GroupTripId = 1,
                },
            };

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            mockUserGroupTripRepo.Setup(x => x.AllAsNoTracking()).Returns(userGroupTripsList.AsQueryable());

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            var exception = await Assert.ThrowsAsync <OperationCanceledException>(async() => await service.EnrollUser(1, "1"));

            var message = "Вече сте записани за този излет!";

            Assert.Equal(message, exception.Message);
        }
コード例 #25
0
        public async Task GetAllByCountryIdAsync_ShouldReturnCorrectResult()
        {
            MapperInitializer.InitializeMapper();
            var context           = ApplicationDbContextInMemoryFactory.InitializeContext();
            var townRepository    = new EfDeletableEntityRepository <Town>(context);
            var countryRepository = new EfDeletableEntityRepository <Country>(context);
            var townsService      = new TownsService(townRepository);
            var seeder            = new DbContextTestsSeeder();
            await seeder.SeedCountriesAsync(context);

            await seeder.SeedTownsAsync(context);

            var countryId = await countryRepository.All()
                            .Select(c => c.Id)
                            .FirstOrDefaultAsync();

            var result = await townsService.GetAllByCountryIdAsync(countryId);

            Assert.True(result.ToList().Count == 1, ErrorMessage);
        }
コード例 #26
0
        public void CreateTownShouldReturnCorrectTownsCount()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateTown_Towns_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService = new TownsService(dbContext);

            for (int i = 1; i <= 50; i++)
            {
                townsService.CreateTown($"Town{i}");
            }

            var townsCount         = dbContext.Towns.CountAsync().Result;
            var expectedTownsCount = 50;

            Assert.AreEqual(expectedTownsCount, townsCount);
        }
コード例 #27
0
        public void GetAllCountShoudReturnTheCountOfAllFishSpeciesInTheRepo()
        {
            var fishSpeciesList = new List <FishSpecies>
            {
                new FishSpecies
                {
                    Id = 1,
                },
                new FishSpecies
                {
                    Id = 2,
                },
                new FishSpecies
                {
                    Id = 3,
                },
            };

            var fishSpeciesRepo = new Mock <IDeletableEntityRepository <FishSpecies> >();

            fishSpeciesRepo.Setup(x => x.AllAsNoTracking()).Returns(fishSpeciesList.AsQueryable());

            var commentRepo    = new Mock <IDeletableEntityRepository <Comment> >();
            var commentService = new CommentService(commentRepo.Object);

            var fishRepo    = new Mock <IDeletableEntityRepository <Fish> >();
            var fishService = new FishServices(fishRepo.Object);

            var townRepo    = new Mock <IDeletableEntityRepository <Town> >();
            var townService = new TownsService(townRepo.Object);

            var tripsRepo    = new Mock <IDeletableEntityRepository <Trip> >();
            var tripsService = new TripsService(commentService, tripsRepo.Object, fishService, townService);

            var fishSpeciesService = new FishSpeciesService(fishSpeciesRepo.Object, tripsService);

            var fishSpeciesCount            = fishSpeciesList.Count;
            var fishSpeciesFountFromService = fishSpeciesService.GetAllCount();

            Assert.Equal(fishSpeciesFountFromService, fishSpeciesCount);
        }
コード例 #28
0
        public void SetLeagueStatusShouldReturnCompletedStatus()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "SetCompletedStatus_Leagues_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            leaguesService.CreateLeague($"LeagueC", $"Description", DateTime.UtcNow.AddDays(3), DateTime.UtcNow.AddMonths(3), "Varna");

            var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "LeagueC");

            leaguesService.SetLeagueStatusToCompleted(league.Id);

            var expectedLeagueStatus = "Completed";

            Assert.AreEqual(expectedLeagueStatus, league.Status.ToString());
        }
コード例 #29
0
        public void CreateLeagueShouldReturnCorrectCountOfLeagues()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateLeague_Leagues_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService   = new TownsService(dbContext);
            var leaguesService = new LeaguesService(dbContext, townsService);

            for (int i = 1; i <= 5; i++)
            {
                leaguesService.CreateLeague($"League{i}", $"Description{i}", DateTime.UtcNow.AddDays(i), DateTime.UtcNow.AddDays(i * i), "Sofia");
            }

            var leaguesCount         = dbContext.Leagues.CountAsync().Result;
            var expectedLeaguesCount = 5;

            Assert.AreEqual(expectedLeaguesCount, leaguesCount);
        }
コード例 #30
0
        public void CreateFieldShouldReturnCorrectCountOfFields()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateField_Fields_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService  = new TownsService(dbContext);
            var fieldsService = new FieldsService(dbContext, townsService);

            for (int i = 1; i <= 20; i++)
            {
                fieldsService.CreateField($"Field{i}", $"Address{i}", false, "Sofia");
            }

            var fieldsCount         = dbContext.Fields.CountAsync().Result;
            var expectedFieldsCount = 20;

            Assert.AreEqual(expectedFieldsCount, fieldsCount);
        }