Ejemplo n.º 1
0
        public async Task GetAllStages_WhenThreeAreAdded_ReturnsThree()
        {
            // Arrange
            var connectionStringBuild =
                new SqliteConnectionStringBuilder {
                DataSource = ":memory:"
            };
            var connection = new SqliteConnection(connectionStringBuild.ToString());

            var options = new DbContextOptionsBuilder <StageBuilderDbContext>()
                          .UseSqlite(connection)
                          .Options;

            using (var context = new StageBuilderDbContext(options))
            {
                context.Database.OpenConnection();
                context.Database.EnsureCreated();

                context.AddRange(new List <StageEntity>
                {
                    new StageEntity()
                    {
                        UserId          = 1,
                        GameId          = 1,
                        CreatedDate     = DateTime.Now,
                        LastUpdatedDate = DateTime.Now
                    },
                    new StageEntity()
                    {
                        UserId          = 1,
                        GameId          = 1,
                        CreatedDate     = DateTime.Now,
                        LastUpdatedDate = DateTime.Now
                    },
                    new StageEntity()
                    {
                        UserId          = 1,
                        GameId          = 1,
                        Published       = true,
                        CreatedDate     = DateTime.Now,
                        LastUpdatedDate = DateTime.Now
                    }
                }.ToArray());
                context.SaveChanges();
            }

            using (var context = new StageBuilderDbContext(options))
            {
                var service = new StageService(context);

                // Act
                var stages = await service.GetAllPublishedStagesAsync();

                // Assertion
                var expectedCount = 3;
                var msg           = $"There are {expectedCount} {Entities} in the database";
                stages.Should().HaveCount(expectedCount, because: msg);
            }
        }
Ejemplo n.º 2
0
        public async Task UpdateStage_UpdatesAStageInDB_ReturnsObject()
        {
            // Arrange
            var connectionStringBuild =
                new SqliteConnectionStringBuilder {
                DataSource = ":memory:"
            };
            var connection = new SqliteConnection(connectionStringBuild.ToString());

            var options = new DbContextOptionsBuilder <StageBuilderDbContext>()
                          .UseSqlite(connection)
                          .Options;

            var entity = new StageEntity()
            {
                UserId          = 1,
                GameId          = 1,
                CreatedDate     = DateTime.Now,
                LastUpdatedDate = DateTime.Now
            };

            using (var context = new StageBuilderDbContext(options))
            {
                context.Database.OpenConnection();
                context.Database.EnsureCreated();

                context.Stages.Add(entity);
                context.SaveChanges();
            }

            using (var context = new StageBuilderDbContext(options))
            {
                var updatedStage = new Stage()
                {
                    UserId = 1,
                    GameId = 1,
                };

                var service = new StageService(context);

                // Act 1
                var updatedEntity = await service.UpdateStageAsync(entity, updatedStage);

                // Assertion 1
                var expectedName = "Updated stage 1";
                var msg          = $"Stage {updatedEntity.Name} has an updated";
                using (new AssertionScope())
                {
                    updatedEntity.Name.Should().Be(expectedName, because: msg);
                }
            }
        }
Ejemplo n.º 3
0
        public async Task AddStageAsync_AddsStage_WhenSuccessful()
        {
            // Arrange
            var connectionStringBuild =
                new SqliteConnectionStringBuilder {
                DataSource = ":memory:"
            };
            var connection = new SqliteConnection(connectionStringBuild.ToString());

            var options = new DbContextOptionsBuilder <StageBuilderDbContext>()
                          .UseSqlite(connection)
                          .Options;

            using (var context = new StageBuilderDbContext(options))
            {
                await context.Database.OpenConnectionAsync();

                await context.Database.EnsureCreatedAsync();

                var stage = new StageEntity()
                {
                    UserId          = 1,
                    GameId          = 1,
                    CreatedDate     = DateTime.Now,
                    LastUpdatedDate = DateTime.Now
                };
                var service = new StageService(context);

                // Act 1
                var entity = await service.AddStageAsync(stage);

                // Assertion 1
                var expected = "Test stage 1";
                var msg      = $"Stage {entity.Name} was returned from add method";
                entity.Name.Should().Be(expected, because: msg);
            }

            using (var context = new StageBuilderDbContext(options))
            {
                var stages = context.Stages;

                // Act 2 - Check if item is is DB
                var id     = 1;
                var entity = stages.First(p => p.StageId == id);

                // Assertion 2
                var expected = "Test stage 1";
                var msg      = $"Stage {entity.Name} exists in database";
                entity.Name.Should().Be(expected, because: msg);
            }
        }
Ejemplo n.º 4
0
        public async Task RemoveStage_RemovesStage_ReturnsObject()
        {
            // Arrange
            var connectionStringBuild =
                new SqliteConnectionStringBuilder {
                DataSource = ":memory:"
            };
            var connection = new SqliteConnection(connectionStringBuild.ToString());

            var options = new DbContextOptionsBuilder <StageBuilderDbContext>()
                          .UseSqlite(connection)
                          .Options;

            using (var context = new StageBuilderDbContext(options))
            {
                context.Database.OpenConnection();
                context.Database.EnsureCreated();

                context.Stages.Add(new StageEntity()
                {
                    UserId          = 1,
                    GameId          = 1,
                    CreatedDate     = DateTime.Now,
                    LastUpdatedDate = DateTime.Now
                });
                context.SaveChanges();
            }

            using (var context = new StageBuilderDbContext(options))
            {
                var    service = new StageService(context);
                string name    = "Test stage 1";
                var    stage   = context.Stages.First(p => p.Name == name);

                // Act
                var entity = await service.RemoveStageAsync(stage);

                // Assertion 1
                var expectedName = "Test stage 1";
                var msg          = $"Stage {entity.Name} was returned from the remove method";
                entity.Name.Should().Be(expectedName, because: msg);
            }

            using (var context = new StageBuilderDbContext(options))
            {
                // Assertion 2
                var expected = 0;
                var msg      = $"There are no entities in the database";
                context.Stages.Should().HaveCount(expected, because: msg);
            }
        }
Ejemplo n.º 5
0
 public StageService(StageBuilderDbContext context)
 {
     _context = context;
 }
Ejemplo n.º 6
0
 public RegionService(StageBuilderDbContext context, IStageService stageService, IMapper mapper)
 {
     _context      = context;
     _stageService = stageService;
     _mapper       = mapper;
 }