コード例 #1
0
        public void GetTopJokes_Must_Return_Top_Jokes_From_Every_Category()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM1  = GetTestJokeBM(JokeCategory.ChuckNorris);
            var testJokeBM2  = GetTestJokeBM(JokeCategory.Animals);
            var testJokeBM3  = GetTestJokeBM(JokeCategory.Computers);
            var testJokeBM4  = GetTestJokeBM(JokeCategory.DriversAndPilots);
            var testJokeBM5  = GetTestJokeBM(JokeCategory.Ivancho);
            var testJokeBM6  = GetTestJokeBM(JokeCategory.Students);
            var testJokeBM7  = GetTestJokeBM(JokeCategory.Different);

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            jokesService.AddJoke(testJokeBM1, testUser);
            jokesService.AddJoke(testJokeBM2, testUser);
            jokesService.AddJoke(testJokeBM3, testUser);
            jokesService.AddJoke(testJokeBM4, testUser);
            jokesService.AddJoke(testJokeBM5, testUser);
            jokesService.AddJoke(testJokeBM6, testUser);
            jokesService.AddJoke(testJokeBM7, testUser);
            var topJokes = jokesService.GetTopJokes(testUser.Id);

            //Assert
            Assert.True(topJokes.Count == 7);
        }
コード例 #2
0
        public void GetUserDislikedJokesIdList_Must_Return_Id_List_Of_User_Liked_Jokes()
        {
            // Arrange
            var dbContext = StaticMethods.GetDb();

            dbContext.Database.EnsureDeleted();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var Joke1      = jokesService.AddJoke(testJokeBM, testUser);
            var Joke2      = jokesService.AddJoke(testJokeBM, testUser);
            var Joke3      = jokesService.AddJoke(testJokeBM, testUser);
            var ratedJoke1 = GetTestJokeRatedDownBM(Joke1.Id, testUser.UserName);
            var ratedJoke2 = GetTestJokeRatedDownBM(Joke2.Id, testUser.UserName);
            var ratedJoke3 = GetTestJokeRatedDownBM(Joke3.Id, testUser.UserName);

            jokesService.RateJoke(ratedJoke1, testUser);
            jokesService.RateJoke(ratedJoke2, testUser);
            jokesService.RateJoke(ratedJoke3, testUser);

            var result = jokesService.GetUserDislikedJokesIdList(testUser.Id);

            //Assert
            Assert.True(result.Contains(Joke1.Id));
            Assert.True(result.Contains(Joke2.Id));
            Assert.True(result.Contains(Joke3.Id));
        }
コード例 #3
0
        public async Task SearchAsync(CommandContext ctx,
                                      [RemainingText, Description("desc-query")] string query)
        {
            IReadOnlyList <string>?jokes = await JokesService.SearchForJokesAsync(query);

            if (jokes is null || !jokes.Any())
            {
                await ctx.FailAsync("cmd-err-res-none");
            }
コード例 #4
0
        public async Task SearchAsync(CommandContext ctx,
                                      [RemainingText, Description("Query.")] string query)
        {
            IReadOnlyList <string> jokes = await JokesService.SearchForJokesAsync(query);

            if (!(jokes is null))
            {
                await this.InformAsync(ctx, $"Results:\n\n{string.Join("\n", jokes.Take(5))}", ":joy:");
            }
コード例 #5
0
        public async Task SearchForJokesAsyncTest()
        {
            Assert.IsNotNull(await JokesService.SearchForJokesAsync("dad joke"));
            Assert.IsNull(await JokesService.SearchForJokesAsync("FOOOOOOOOOOOOO1231231313123"));

            Assert.ThrowsAsync(typeof(ArgumentException), () => JokesService.SearchForJokesAsync(null));
            Assert.ThrowsAsync(typeof(ArgumentException), () => JokesService.SearchForJokesAsync(""));
            Assert.ThrowsAsync(typeof(ArgumentException), () => JokesService.SearchForJokesAsync(" "));
            Assert.ThrowsAsync(typeof(ArgumentException), () => JokesService.SearchForJokesAsync("\n"));
        }
コード例 #6
0
        public async Task ExecuteGroupAsync(CommandContext ctx)
        {
            string?joke = await JokesService.GetRandomJokeAsync();

            if (joke is null)
            {
                await ctx.FailAsync("cmd-err-res-none");
            }
            else
            {
                await ctx.Channel.EmbedAsync(joke, Emojis.Joy, this.ModuleColor);
            }
        }
コード例 #7
0
        public void GetCountShouldReturnsCorrectNumber()
        {
            var jokesRepository = new Mock <IRepository <Joke> >();

            jokesRepository.Setup(r => r.All()).Returns(new List <Joke>
            {
                new Joke(),
                new Joke(),
                new Joke(),
            }.AsQueryable());
            var service = new JokesService(jokesRepository.Object, null);

            Assert.Equal(3, service.GetCount());
            jokesRepository.Verify(x => x.All(), Times.Once);
        }
コード例 #8
0
        public void GetUserDislikedJokesIdList_Must_Return_Empty_Collection_If_User_Havent_Disliked_Any_Joke()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke = jokesService.AddJoke(testJokeBM, testUser);
            var result    = jokesService.GetUserDislikedJokesIdList(testUser.Id);

            //Assert
            Assert.True(result.Count == 0);
        }
コード例 #9
0
        public void IsUserDislikedJoke_Must_Return_FALSE_If_User_Likes_Given_Joke()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke = jokesService.AddJoke(testJokeBM, testUser);
            var result    = jokesService.IsUserDisLikedJoke(addedJoke.Id, testUser.Id);

            //Assert
            Assert.True(!result);
        }
コード例 #10
0
        public async Task GetCountShouldReturnsCorrectNumberUsingDbContext()
        {
            var options = new DbContextOptionsBuilder <JokifyContext>()
                          .UseInMemoryDatabase(databaseName: "Find_User_Database") // Give a Unique name to the DB
                          .Options;
            var dbContext = new JokifyContext(options);

            dbContext.Jokes.Add(new Joke());
            dbContext.Jokes.Add(new Joke());
            dbContext.Jokes.Add(new Joke());
            await dbContext.SaveChangesAsync();

            var repository   = new DbRepository <Joke>(dbContext);
            var jokesService = new JokesService(repository, null);
            var count        = jokesService.GetCount();

            Assert.Equal(3, count);
        }
コード例 #11
0
        public void RateJoke_Must_Return_NULL_If_Joke_RatedDown_Twice()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke        = jokesService.AddJoke(testJokeBM, testUser);
            var testJokeRatingBM = GetTestJokeRatedDownBM(addedJoke.Id, testUser.UserName);
            var firstTime        = jokesService.RateJoke(testJokeRatingBM, testUser);
            var secondTime       = jokesService.RateJoke(testJokeRatingBM, testUser);

            //Assert
            Assert.True(secondTime == null);
        }
コード例 #12
0
        public void GetJoke_Must_Return_Joke_When_T_Is_JokeEditBindingModel()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke = jokesService.AddJoke(testJokeBM, testUser);
            var result    = jokesService.GetJoke <JokeEditBindingModel>(addedJoke.Id);

            //Assert
            Assert.True(result.Content == addedJoke.Content);
            Assert.True(result.Category == addedJoke.Category);
            Assert.True(result.Id == addedJoke.Id);
        }
コード例 #13
0
        public void DeleteJoke_Must_Return_Deleted_Joke()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke = jokesService.AddJoke(testJokeBM, testUser);
            var result    = jokesService.DeleteJoke(addedJoke.Id);

            //Assert
            Assert.True(result.Id == addedJoke.Id);
            Assert.True(result.Content == addedJoke.Content);
            Assert.True(result.Category == addedJoke.Category);
            Assert.True(result.PublisherId == addedJoke.PublisherId);
        }
コード例 #14
0
        public void AddJoke_Must_Return_Created_Joke()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var result = jokesService.AddJoke(testJokeBM, testUser);

            //Assert
            Assert.True(result.Content == testJokeBM.Content);
            Assert.True(result.Category == testJokeBM.Category);
            Assert.True(result.Likes == 0);
            Assert.True(result.Dislikes == 0);
            Assert.True(result.PublisherId == testUser.Id);
        }
コード例 #15
0
        public void GetAllJokes_Must_Return_AllJokesViewModel()
        {
            // Arrange
            var dbContext = StaticMethods.GetDb();

            dbContext.Database.EnsureDeleted();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            jokesService.AddJoke(testJokeBM, testUser);
            jokesService.AddJoke(testJokeBM, testUser);
            jokesService.AddJoke(testJokeBM, testUser);
            var result = jokesService.GetAllJokes();

            //Assert
            Assert.True(result.Jokes.Count == 3);
        }
コード例 #16
0
        public void RateJoke_Must_Return_Rated_Joke_If_RatedUp()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke        = jokesService.AddJoke(testJokeBM, testUser);
            var testJokeRatingBM = GetTestJokeRatedUpBM(addedJoke.Id, testUser.UserName);
            var result           = jokesService.RateJoke(testJokeRatingBM, testUser);

            //Assert
            Assert.True(result.Content == addedJoke.Content);
            Assert.True(result.Category == addedJoke.Category);
            Assert.True(result.Likes == 1);
            Assert.True(result.Dislikes == 0);
            Assert.True(result.PublisherId == testUser.Id);
        }
コード例 #17
0
        public void EditJoke_Must_Return_Edited_Joke()
        {
            // Arrange
            var dbContext    = StaticMethods.GetDb();
            var jokesService = new JokesService(dbContext, mapper);
            var testUser     = StaticMethods.GetTestUser();
            var testJokeBM   = GetTestJokeBM();

            //Act
            dbContext.Users.Add(testUser);
            dbContext.SaveChanges();
            var addedJoke  = jokesService.AddJoke(testJokeBM, testUser);
            var editJokeBM = GetTestJokeEditBM(addedJoke.Id);
            var editedJoke = jokesService.EditJoke(editJokeBM);

            //Assert
            Assert.True(editedJoke.Content == addedJoke.Content);
            Assert.True(editedJoke.Category == addedJoke.Category);
            Assert.True(editedJoke.Likes == 0);
            Assert.True(editedJoke.Dislikes == 0);
            Assert.True(editedJoke.PublisherId == testUser.Id);
        }
コード例 #18
0
 public async Task GetRandomYoMommaJokeAsync()
 {
     Assert.IsNotNull(await JokesService.GetRandomYoMommaJokeAsync());
 }
コード例 #19
0
        public async Task YomamaAsync(CommandContext ctx)
        {
            string joke = await JokesService.GetRandomYoMommaJokeAsync();

            await this.InformAsync(ctx, joke, ":joy:");
        }
コード例 #20
0
        public async Task ExecuteGroupAsync(CommandContext ctx)
        {
            string joke = await JokesService.GetRandomJokeAsync();

            await this.InformAsync(ctx, joke, ":joy:");
        }