public async void UpdateExistingEpisode()
        {
            // Given
            var newhope = await _episodeRepository.Get(4);

            newhope.Title = "Episode4";

            // When
            _episodeRepository.Update(newhope);
            var saved = await _episodeRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var episode = await db.Episodes.FindAsync(4);

                Assert.NotNull(episode);
                Assert.Equal(4, episode.Id);
                Assert.Equal("Episode4", episode.Title);

                // Cleanup
                episode.Title = "NEWHOPE";
                db.Episodes.Update(episode);
                await db.SaveChangesAsync();
            }
        }
        public async void DeleteExistingDroid()
        {
            // Given
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var droid2100 = new Droid {
                    Id = 2100, Name = "Droid2100", PrimaryFunction = "Function2100"
                };
                await db.Droids.AddAsync(droid2100);

                await db.SaveChangesAsync();
            }

            // When
            _droidRepository.Delete(2100);
            var saved = await _droidRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var deletedDroid = await db.Droids.FindAsync(2100);

                Assert.Null(deletedDroid);
            }
        }
        public async void DeleteExistingCharacter()
        {
            // Given
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var character3100 = new Character {
                    Id = 3100, Name = "Character3100"
                };
                await db.Characters.AddAsync(character3100);

                await db.SaveChangesAsync();
            }

            // When
            _characterRepository.Delete(3100);
            var saved = await _characterRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var deletedCharacter = await db.Characters.FindAsync(3100);

                Assert.Null(deletedCharacter);
            }
        }
        public async void AddNewDroid()
        {
            // Given
            var droid2101 = new Droid {
                Id = 2101, Name = "Droid2101", PrimaryFunction = "Function2101"
            };

            // When
            _characterRepository.Add(droid2101);
            var saved = await _characterRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var character = await db.Characters.FindAsync(2101);

                Assert.NotNull(character);
                Assert.IsType <Droid>(character);
                Assert.Equal(2101, character.Id);
                Assert.Equal("Droid2101", character.Name);

                // Cleanup
                db.Characters.Remove(character);
                await db.SaveChangesAsync();
            }
        }
        public async void UpdateExistingCharacter()
        {
            // Given
            var threepio = await _characterRepository.Get(2000);

            threepio.Name = "Character2000";

            // When
            _characterRepository.Update(threepio);
            var saved = await _characterRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var character = await db.Characters.FindAsync(2000);

                Assert.NotNull(character);
                Assert.Equal(2000, character.Id);
                Assert.Equal("Character2000", character.Name);

                // Cleanup
                character.Name = "C-3PO";
                db.Characters.Update(character);
                await db.SaveChangesAsync();
            }
        }
        public async void AddNewEpisode()
        {
            // Given
            var episode101 = new Episode {
                Id = 101, Title = "Episode101"
            };

            // When
            _episodeRepository.Add(episode101);
            var saved = await _episodeRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var episode = await db.Episodes.FindAsync(101);

                Assert.NotNull(episode);
                Assert.Equal(101, episode.Id);
                Assert.Equal("Episode101", episode.Title);

                // Cleanup
                db.Episodes.Remove(episode);
                await db.SaveChangesAsync();
            }
        }
Exemple #7
0
        public async void UpdateExistingHuman()
        {
            // Given
            var vader = await _humanRepository.Get(1001);

            vader.Name = "Human1001";

            // When
            _humanRepository.Update(vader);
            var saved = await _humanRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var human = await db.Humans.FindAsync(1001);

                Assert.NotNull(human);
                Assert.Equal(1001, human.Id);
                Assert.Equal("Human1001", human.Name);

                // Cleanup
                human.Name = "Darth Vader";
                db.Humans.Update(human);
                await db.SaveChangesAsync();
            }
        }
Exemple #8
0
        public async void AddNewPlanet()
        {
            // Given
            var planet101 = new Planet {
                Id = 101, Name = "Planet101"
            };

            // When
            _planetRepository.Add(planet101);
            var saved = await _planetRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var planet = await db.Planets.FindAsync(101);

                Assert.NotNull(planet);
                Assert.Equal(101, planet.Id);
                Assert.Equal("Planet101", planet.Name);

                // Cleanup
                db.Planets.Remove(planet);
                await db.SaveChangesAsync();
            }
        }
        public async void DeleteExistingEpisode()
        {
            // Given
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var episode102 = new Episode {
                    Id = 102, Title = "Episode102"
                };
                await db.Episodes.AddAsync(episode102);

                await db.SaveChangesAsync();
            }

            // When
            _episodeRepository.Delete(102);
            var saved = await _episodeRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var deletedEpisode = await db.Episodes.FindAsync(102);

                Assert.Null(deletedEpisode);
            }
        }
Exemple #10
0
        public async void UpdateExistingPlanet()
        {
            // Given
            var alderaan = await _planetRepository.Get(2);

            alderaan.Name = "Planet2";

            // When
            _planetRepository.Update(alderaan);
            var saved = await _planetRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var planet = await db.Planets.FindAsync(2);

                Assert.NotNull(planet);
                Assert.Equal(2, planet.Id);
                Assert.Equal("Planet2", planet.Name);

                // Cleanup
                planet.Name = "Alderaan";
                db.Planets.Update(planet);
                await db.SaveChangesAsync();
            }
        }
Exemple #11
0
        public async void DeleteExistingPlanet()
        {
            // Given
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var planet102 = new Planet {
                    Id = 102, Name = "Planet102"
                };
                await db.Planets.AddAsync(planet102);

                await db.SaveChangesAsync();
            }

            // When
            _planetRepository.Delete(102);
            var saved = await _planetRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var deletedPlanet = await db.Planets.FindAsync(102);

                Assert.Null(deletedPlanet);
            }
        }
Exemple #12
0
        public async void AddNewHuman()
        {
            // Given
            var human10101 = new Human {
                Id = 10101, Name = "Human10101"
            };

            // When
            _humanRepository.Add(human10101);
            var saved = await _humanRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var human = await db.Humans.FindAsync(10101);

                Assert.NotNull(human);
                Assert.Equal(10101, human.Id);
                Assert.Equal("Human10101", human.Name);

                // Cleanup
                db.Humans.Remove(human);
                await db.SaveChangesAsync();
            }
        }
Exemple #13
0
        public async void DeleteExistingHuman()
        {
            // Given
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var human10102 = new Human {
                    Id = 10102, Name = "Human10102"
                };
                await db.Humans.AddAsync(human10102);

                await db.SaveChangesAsync();
            }

            // When
            _humanRepository.Delete(10102);
            var saved = await _humanRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var deletedHuman = await db.Humans.FindAsync(10101);

                Assert.Null(deletedHuman);
            }
        }
        public async void AddNewCharacter()
        {
            // Given
            var character3101 = new Character {
                Id = 3101, Name = "Character3101"
            };

            // When
            _characterRepository.Add(character3101);
            var saved = await _characterRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var character = await db.Characters.FindAsync(3101);

                Assert.NotNull(character);
                Assert.Equal(3101, character.Id);
                Assert.Equal("Character3101", character.Name);

                // Cleanup
                db.Characters.Remove(character);
                await db.SaveChangesAsync();
            }
        }
        public async void UpdateExistingDroid()
        {
            // Given
            var threepio = await _droidRepository.Get(2000);

            threepio.PrimaryFunction = "Function2000";

            // When
            _droidRepository.Update(threepio);
            var saved = await _droidRepository.SaveChangesAsync();

            // Then
            Assert.True(saved);
            using (var db = new AmstramgramContext(_options, _dbLogger.Object))
            {
                var droid = await db.Droids.FindAsync(2000);

                Assert.NotNull(droid);
                Assert.Equal(2000, droid.Id);
                Assert.Equal("Function2000", droid.PrimaryFunction);

                // Cleanup
                droid.PrimaryFunction = "Protocol";
                db.Droids.Update(droid);
                await db.SaveChangesAsync();
            }
        }
Exemple #16
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                              ILoggerFactory loggerFactory, AmstramgramContext db)
        {
            var forwardedHeadersOptions = new ForwardedHeadersOptions
            {
                ForwardedHeaders      = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
                RequireHeaderSymmetry = false
            };

            forwardedHeadersOptions.KnownNetworks.Clear();
            forwardedHeadersOptions.KnownProxies.Clear();

            app.UseForwardedHeaders(forwardedHeadersOptions);

            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            app.UseCors(builder => builder
                        .AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials());

            app.UseSession();

            app.Use((httpContext, nextMiddleware) =>
            {
                httpContext.Session.SetObject("_SessionKey", String.Empty);
                httpContext.Session.SetObject("_SessionDate", DateTime.Now);

                return(nextMiddleware());
            });

            app.UseStaticFiles();

            app.UseMvc();

            app.UseCookiePolicy();

            /*var optionsRewrite = new RewriteOptions()
             *                .AddRedirectToHttps(StatusCodes.Status301MovedPermanently, 63423);*/

            //app.UseRewriter(optionsRewrite);
            AppHttpContext.Configure(app.ApplicationServices.GetRequiredService <IHttpContextAccessor>());
            // db.EnsureSeedData();
        }
        public EpisodeRepositoryShould()
        {
            // Given
            _dbLogger = new Mock <ILogger <AmstramgramContext> >();
            // https://docs.microsoft.com/en-us/ef/core/miscellaneous/testing/in-memory
            _options = new DbContextOptionsBuilder <AmstramgramContext>()
                       .UseInMemoryDatabase(databaseName: "Amstramgram_EpisodeRepositoryShould")
                       .Options;
            using (var context = new AmstramgramContext(_options, _dbLogger.Object))
            {
                context.EnsureSeedData();
            }
            var starWarsContext = new AmstramgramContext(_options, _dbLogger.Object);
            var repoLogger      = new Mock <ILogger <EpisodeRepository> >();

            _episodeRepository = new EpisodeRepository(starWarsContext, repoLogger.Object);
        }
Exemple #18
0
        public async void ReturnR2D2Droid()
        {
            // Given
            using (var db = new AmstramgramContext())
            {
                // When
                var r2d2 = await db.Droids
                           .Include("CharacterEpisodes.Episode")
                           .Include("CharacterFriends.Friend")
                           .FirstOrDefaultAsync(d => d.Id == 2001);

                // Then
                Assert.NotNull(r2d2);
                Assert.Equal("R2-D2", r2d2.Name);
                Assert.Equal("Astromech", r2d2.PrimaryFunction);
                var episodes = r2d2.CharacterEpisodes.Select(e => e.Episode.Title);
                Assert.Equal(new[] { "NEWHOPE", "EMPIRE", "JEDI" }, episodes);
                var friends = r2d2.CharacterFriends.Select(e => e.Friend.Name);
                Assert.Equal(new[] { "Luke Skywalker", "Han Solo", "Leia Organa" }, friends);
            }
        }
Exemple #19
0
 public CommentRepository(AmstramgramContext db, ILogger <CommentRepository> logger)
     : base(db, logger)
 {
 }
        public static void EnsureSeedData(this AmstramgramContext db)
        {
            db._logger.LogInformation("Seeding database");

            // episodes

            /*var newhope = new Episode { Id = 4, Title = "NEWHOPE" };
             * var empire = new Episode { Id = 5, Title = "EMPIRE" };
             * var jedi = new Episode { Id = 6, Title = "JEDI" };
             * var episodes = new List<Episode>
             * {
             *  newhope,
             *  empire,
             *  jedi,
             * };
             * if (!db.Episodes.Any())
             * {
             *  db._logger.LogInformation("Seeding episodes");
             *  db.Episodes.AddRange(episodes);
             *  db.SaveChanges();
             * }
             *
             * // planets
             * var tatooine = new Planet { Id = 1, Name = "Tatooine" };
             * var alderaan = new Planet { Id = 2, Name = "Alderaan" };
             * var planets = new List<Planet>
             * {
             *  tatooine,
             *  alderaan
             * };
             * if (!db.Planets.Any())
             * {
             *  db._logger.LogInformation("Seeding planets");
             *  db.Planets.AddRange(planets);
             *  db.SaveChanges();
             * }
             *
             * // humans
             * var luke = new Human
             * {
             *  Id = 1000,
             *  Name = "Luke Skywalker",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope },
             *      new CharacterEpisode { Episode = empire },
             *      new CharacterEpisode { Episode = jedi }
             *  },
             *  HomePlanet = tatooine
             * };
             * var vader = new Human
             * {
             *  Id = 1001,
             *  Name = "Darth Vader",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope },
             *      new CharacterEpisode { Episode = empire },
             *      new CharacterEpisode { Episode = jedi }
             *  },
             *  HomePlanet = tatooine
             * };
             * var han = new Human
             * {
             *  Id = 1002,
             *  Name = "Han Solo",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope },
             *      new CharacterEpisode { Episode = empire },
             *      new CharacterEpisode { Episode = jedi }
             *  },
             *  HomePlanet = tatooine
             * };
             * var leia = new Human
             * {
             *  Id = 1003,
             *  Name = "Leia Organa",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope },
             *      new CharacterEpisode { Episode = empire },
             *      new CharacterEpisode { Episode = jedi }
             *  },
             *  HomePlanet = alderaan
             * };
             * var tarkin = new Human
             * {
             *  Id = 1004,
             *  Name = "Wilhuff Tarkin",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope }
             *  },
             * };
             * var humans = new List<Human>
             * {
             *  luke,
             *  vader,
             *  han,
             *  leia,
             *  tarkin
             * };
             * if (!db.Humans.Any())
             * {
             *  db._logger.LogInformation("Seeding humans");
             *  db.Humans.AddRange(humans);
             *  db.SaveChanges();
             * }
             *
             * // droids
             * var threepio = new Droid
             * {
             *  Id = 2000,
             *  Name = "C-3PO",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope },
             *      new CharacterEpisode { Episode = empire },
             *      new CharacterEpisode { Episode = jedi }
             *  },
             *  PrimaryFunction = "Protocol"
             * };
             * var artoo = new Droid
             * {
             *  Id = 2001,
             *  Name = "R2-D2",
             *  CharacterEpisodes = new List<CharacterEpisode>
             *  {
             *      new CharacterEpisode { Episode = newhope },
             *      new CharacterEpisode { Episode = empire },
             *      new CharacterEpisode { Episode = jedi }
             *  },
             *  PrimaryFunction = "Astromech"
             * };
             * var droids = new List<Droid>
             * {
             *  threepio,
             *  artoo
             * };
             * if (!db.Droids.Any())
             * {
             *  db._logger.LogInformation("Seeding droids");
             *  db.Droids.AddRange(droids);
             *  db.SaveChanges();
             * }
             *
             * // update character's friends
             * luke.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = han },
             *  new CharacterFriend { Friend = leia },
             *  new CharacterFriend { Friend = threepio },
             *  new CharacterFriend { Friend = artoo }
             * };
             * vader.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = tarkin }
             * };
             * han.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = luke },
             *  new CharacterFriend { Friend = leia },
             *  new CharacterFriend { Friend = artoo }
             * };
             * leia.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = luke },
             *  new CharacterFriend { Friend = han },
             *  new CharacterFriend { Friend = threepio },
             *  new CharacterFriend { Friend = artoo }
             * };
             * tarkin.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = vader }
             * };
             * threepio.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = luke },
             *  new CharacterFriend { Friend = han },
             *  new CharacterFriend { Friend = leia },
             *  new CharacterFriend { Friend = artoo }
             * };
             * artoo.CharacterFriends = new List<CharacterFriend>
             * {
             *  new CharacterFriend { Friend = luke },
             *  new CharacterFriend { Friend = han },
             *  new CharacterFriend { Friend = leia }
             * };
             * var characters = new List<Character>
             * {
             *  luke,
             *  vader,
             *  han,
             *  leia,
             *  tarkin,
             *  threepio,
             *  artoo
             * };
             * if (!db.CharacterFriends.Any())
             * {
             *  db._logger.LogInformation("Seeding character's friends");
             *  db.Characters.UpdateRange(characters);
             *  db.SaveChanges();
             * }
             *
             * // update episode's heroes
             * newhope.Hero = artoo;
             * empire.Hero = luke;
             * jedi.Hero = artoo;
             * db._logger.LogInformation("Seeding episode's heroes");
             * db.SaveChanges();*/
        }
 public UserFollowerRepository(AmstramgramContext db, ILogger <UserFollowerRepository> logger)
     : base(db, logger)
 {
 }
Exemple #22
0
 public PictureRepository(AmstramgramContext db, ILogger <PictureRepository> logger)
     : base(db, logger)
 {
 }
Exemple #23
0
 public LikeRepository(AmstramgramContext db, ILogger <LikeRepository> logger)
     : base(db, logger)
 {
 }