diff options
| author | Victor S <57849063+transtrike@users.noreply.github.com> | 2021-02-05 10:54:49 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-05 10:54:49 -0800 |
| commit | f4a70c6430db923af9fa9958a11c2d6612cb52cc (patch) | |
| tree | ca0ea403ba5500df20bc8854ec50529a25c64245 /src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs | |
| parent | 1ccdefdac025b1b986ad2bd0bc3eda7505d6e7c3 (diff) | |
| parent | 2269b5aa6c8d3dcb407c34fa256200bdc573585a (diff) | |
| download | DevHive-f4a70c6430db923af9fa9958a11c2d6612cb52cc.tar DevHive-f4a70c6430db923af9fa9958a11c2d6612cb52cc.tar.gz DevHive-f4a70c6430db923af9fa9958a11c2d6612cb52cc.zip | |
Merge pull request #18 from Team-Kaleidoscope/devv0.1
First stage: Complete. Awaiting further progress...
Diffstat (limited to 'src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs')
| -rw-r--r-- | src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs new file mode 100644 index 0000000..f134bf3 --- /dev/null +++ b/src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories; +using Microsoft.EntityFrameworkCore; +using NUnit.Framework; + +namespace DevHive.Data.Tests +{ + [TestFixture] + public class FeedRepositoryTests + { + protected DevHiveContext Context { get; set; } + + protected FeedRepository FeedRepository { get; set; } + + #region Setups + [SetUp] + public void Setup() + { + var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() + .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); + + this.Context = new DevHiveContext(optionsBuilder.Options); + + FeedRepository = new FeedRepository(Context); + } + + [TearDown] + public void TearDown() + { + this.Context.Database.EnsureDeleted(); + } + #endregion + + #region GetFriendsPosts + [Test] + public async Task GetFriendsPosts_ReturnsListOfPosts_WhenTheyExist() + { + User dummyUser = this.CreateDummyUser(); + List<User> friendsList = new List<User>(); + friendsList.Add(dummyUser); + + DateTime dateTime = new DateTime(3000, 05, 09, 9, 15, 0); + Console.WriteLine(dateTime.ToFileTime()); + + Post dummyPost = this.CreateDummyPost(dummyUser); + Post anotherDummnyPost = this.CreateDummyPost(dummyUser); + + const int PAGE_NUMBER = 1; + const int PAGE_SIZE = 10; + + List<Post> resultList = await this.FeedRepository.GetFriendsPosts(friendsList, dateTime, PAGE_NUMBER, PAGE_SIZE); + + Assert.GreaterOrEqual(2, resultList.Count, "GetFriendsPosts does not return all correct posts"); + } + + [Test] + public async Task GetFriendsPosts_ReturnsNull_WhenNoSuitablePostsExist() + { + User dummyUser = this.CreateDummyUser(); + List<User> friendsList = new List<User>(); + friendsList.Add(dummyUser); + + DateTime dateTime = new DateTime(3000, 05, 09, 9, 15, 0); + + const int PAGE_NUMBER = 1; + const int PAGE_SIZE = 10; + + List<Post> resultList = await this.FeedRepository.GetFriendsPosts(friendsList, dateTime, PAGE_NUMBER, PAGE_SIZE); + + Assert.LessOrEqual(0, resultList.Count, "GetFriendsPosts does not return all correct posts"); + } + #endregion + + #region HelperMethods + private User CreateDummyUser() + { + HashSet<Role> roles = new() + { + new Role() + { + Id = Guid.NewGuid(), + Name = Role.DefaultRole + }, + }; + + return new() + { + Id = Guid.NewGuid(), + UserName = "pioneer10", + FirstName = "Spas", + LastName = "Spasov", + Email = "abv@abv.bg", + Roles = roles + }; + } + + private Post CreateDummyPost(User poster) + { + const string POST_MESSAGE = "random message"; + Guid id = Guid.NewGuid(); + Post post = new Post + { + Id = id, + Message = POST_MESSAGE, + Creator = poster, + TimeCreated = new DateTime(2000, 05, 09, 9, 15, 0) + }; + + this.Context.Posts.Add(post); + this.Context.SaveChanges(); + + return post; + } + #endregion + } +} |
