public async Task DeleteShouldDeleteEntityOfDbSet()
        {
            var options = new DbContextOptionsBuilder <TimeMachineContext>()
                          .UseInMemoryDatabase(databaseName: "Get_Last_Tags_Db")
                          .Options;

            var db = new TimeMachineContext(options);

            var dbRepository = new DbRepository <Tag>(db);

            var tagToDlelete = new Tag();

            await dbRepository.AddAsync(tagToDlelete);

            await dbRepository.AddAsync(new Tag());

            await dbRepository.SaveChangesAsync();

            dbRepository.Delete(tagToDlelete);
            await dbRepository.SaveChangesAsync();

            var entitiesCount = db.Tags.Count();

            Assert.Equal(1, entitiesCount);
        }
Ejemplo n.º 2
0
        private async Task Setup(DbRepository <Image> imageRepository)
        {
            this.friend = new User()
            {
                Id = FRIEND_USER_ID
            };

            friend.UserFriends.Add(new Friendship()
            {
                UserId   = friend.Id,
                FriendId = CURRENT_USER_ID
            });

            this.unknown = new User()
            {
                Id = UNKNOWN_USER_ID
            };

            var friendPublicImage = new Image()
            {
                Id       = 101,
                UserId   = friend.Id,
                User     = friend,
                IsPublic = true
            };

            var friendPrivateImage = new Image()
            {
                Id       = 102,
                UserId   = friend.Id,
                User     = friend,
                IsPublic = true
            };

            var unknownPublicImage = new Image()
            {
                Id       = 103,
                UserId   = unknown.Id,
                User     = unknown,
                IsPublic = true
            };

            var unknownPrivateImage = new Image()
            {
                Id       = 104,
                UserId   = unknown.Id,
                User     = unknown,
                IsPublic = false
            };

            await imageRepository.AddAsync(friendPublicImage);

            await imageRepository.AddAsync(friendPrivateImage);

            await imageRepository.AddAsync(unknownPublicImage);

            await imageRepository.AddAsync(unknownPrivateImage);

            await imageRepository.SaveChangesAsync();
        }
        public async Task <GameResult> Handle(CreateGameResultRequest request, CancellationToken cancellationToken)
        {
            if (request.HomeTeamName == request.GuestTeamName)
            {
                throw new ArgumentException("Home and guest team name cannot be same");
            }

            using (var context = _contextFactory.CreateContext())
            {
                var teamRepository = new DbRepository <Team>(context);

                var homeTeam = await teamRepository
                               .SingleOrDefaultAsync(x => x.Tournament.Name == request.TournamentName &&
                                                     x.Name == request.HomeTeamName);

                var guestTeam = await teamRepository
                                .SingleOrDefaultAsync(x => x.Tournament.Name == request.TournamentName &&
                                                      x.Name == request.GuestTeamName);

                if (homeTeam == null)
                {
                    throw new ArgumentException($"Team with name {request.HomeTeamName} " +
                                                $"doesn't exist in tournament {request.TournamentName}");
                }

                if (guestTeam == null)
                {
                    throw new ArgumentException($"Team with name {request.GuestTeamName} " +
                                                $"doesn't exist in tournament {request.TournamentName}");
                }

                var gameRepository = new GameRepository(context);

                var game = await gameRepository.GetGame(homeTeam.Id, guestTeam.Id);

                var gameResultRepository = new DbRepository <GameResult>(context);

                if (game.Result == null)
                {
                    var gameResult = _gameResultFactory.Create(game, request.HomeTeamResult,
                                                               request.GuestTeamResult);

                    await gameResultRepository.AddAsync(gameResult);

                    return(gameResult);
                }

                game.Result.GuestTeamResult = request.GuestTeamResult;
                game.Result.HomeTeamResult  = request.HomeTeamResult;

                await gameResultRepository.UpdateAsync(game.Result);

                return(game.Result);
            }
        }
        public async Task AllShouldReturnEntitiesCountOfDbSet()
        {
            var options = new DbContextOptionsBuilder <TimeMachineContext>()
                          .UseInMemoryDatabase(databaseName: "Get_All_Tags_Db")
                          .Options;

            var db = new TimeMachineContext(options);

            var dbRepository = new DbRepository <Tag>(db);

            await dbRepository.AddAsync(new Tag());

            await dbRepository.AddAsync(new Tag());

            await dbRepository.AddAsync(new Tag());

            await dbRepository.SaveChangesAsync();

            var tagsCount = dbRepository.All().Count();

            Assert.Equal(3, tagsCount);
        }
        public async Task GetLastShouldReturnLastEntitiesOfDbSet()
        {
            var options = new DbContextOptionsBuilder <TimeMachineContext>()
                          .UseInMemoryDatabase(databaseName: "Get_Last_Tags_Db")
                          .Options;

            var db = new TimeMachineContext(options);

            var dbRepository = new DbRepository <Tag>(db);

            await dbRepository.AddAsync(new Tag());

            await dbRepository.AddAsync(new Tag());

            await dbRepository.AddAsync(new Tag());

            await dbRepository.SaveChangesAsync();

            var lastEntities = dbRepository.GetLast(1);

            var lastEntitiesCount = lastEntities.Count();

            Assert.Equal(1, lastEntitiesCount);
        }
        public async Task AddAsyncShouldAddEntityInDb()
        {
            var options = new DbContextOptionsBuilder <TimeMachineContext>()
                          .UseInMemoryDatabase(databaseName: "Save_Tag_Db")
                          .Options;

            var db = new TimeMachineContext(options);

            var dbRepository = new DbRepository <Tag>(db);

            await dbRepository.AddAsync(new Tag());

            await dbRepository.SaveChangesAsync();

            var tagsCount = db.Tags.Count();

            Assert.Equal(1, tagsCount);
        }
        public async Task <Tournament> Handle(CreateTournamentRequest request, CancellationToken cancellationToken)
        {
            using (var context = _contextFactory.CreateContext())
                using (var transaction = context.Database.BeginTransaction())
                {
                    var tournament = _tournamentFactory.Create(request.TournamentName, request.TeamsCount);

                    var tournamentRepository = new DbRepository <Tournament>(context);
                    await tournamentRepository.AddAsync(tournament);

                    var rounds = _roundsService.CreateRoundsPerTournament(tournament);

                    var roundRepository = new DbRepository <Round>(context);

                    foreach (var round in rounds)
                    {
                        await roundRepository.AddAsync(round);
                    }

                    transaction.Commit();

                    return(tournament);
                }
        }
Ejemplo n.º 8
0
        public ImageServiceTests()
        {
            //mocks
            var options = new DbContextOptionsBuilder <ImageServeDbContext>()
                          .UseInMemoryDatabase(databaseName: "ImageServeTest") // Give a Unique name to the DB
                          .Options;

            var dbContext = new ImageServeDbContext(options);

            var imageRepository = new DbRepository <Image>(dbContext);

            var likesRepository = new DbRepository <ImageLike>(dbContext);

            var userRepository = new DbRepository <User>(dbContext);

            var tagsRepository = new DbRepository <ImageTag>(dbContext);

            var mapperMock = new Mock <IMapper>();

            var userServiceMock = new Mock <IUserService>();

            userServiceMock
            .Setup(us => us.GetCurrentId())
            .Returns("2")
            .Verifiable();


            var tagServiceMock = new Mock <ITagService>();

            tagServiceMock
            .Setup(ts => ts.AddToImageAsync(It.IsAny <Image>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var blobServiceMock = new Mock <IBlobStorageService>();

            blobServiceMock
            .Setup(bs => bs.UploadFromFileAsync(It.IsAny <byte[]>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.CompletedTask)
            .Verifiable();



            //arrange
            //AllByUser arrange
            this.friend = new User()
            {
                Id = "2"
            };

            friend.UserFriends.Add(new Friendship()
            {
                UserId   = friend.Id,
                FriendId = "2"
            });

            this.unknown = new User()
            {
                Id = "3"
            };

            var friendPublicImage = new Image()
            {
                Id       = 101,
                UserId   = friend.Id,
                User     = friend,
                IsPublic = true
            };

            var friendPrivateImage = new Image()
            {
                Id       = 102,
                UserId   = friend.Id,
                User     = friend,
                IsPublic = true
            };

            var unknownPublicImage = new Image()
            {
                Id       = 103,
                UserId   = unknown.Id,
                User     = unknown,
                IsPublic = true
            };

            var unknownPrivateImage = new Image()
            {
                Id       = 104,
                UserId   = unknown.Id,
                User     = unknown,
                IsPublic = false
            };

            imageRepository.AddAsync(friendPublicImage).GetAwaiter().GetResult();
            imageRepository.AddAsync(friendPrivateImage).GetAwaiter().GetResult();
            imageRepository.AddAsync(unknownPublicImage).GetAwaiter().GetResult();
            imageRepository.AddAsync(unknownPrivateImage).GetAwaiter().GetResult();
            imageRepository.SaveChangesAsync().GetAwaiter().GetResult();


            imageService = new ImageService(imageRepository, mapperMock.Object, tagServiceMock.Object, userServiceMock.Object, blobServiceMock.Object, likesRepository);
        }