aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-02-13 16:20:18 +0200
committertranstrike <transtrike@gmail.com>2021-02-13 16:20:18 +0200
commit98e17766b203734a1817eed94338e2d25f4395f7 (patch)
tree1266385a56cba56fd55c7faf661dd844bbdf5705 /src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
parent1ab34accfda22ee3ce5c7700e3b97ff3e932d649 (diff)
downloadDevHive-98e17766b203734a1817eed94338e2d25f4395f7.tar
DevHive-98e17766b203734a1817eed94338e2d25f4395f7.tar.gz
DevHive-98e17766b203734a1817eed94338e2d25f4395f7.zip
Project Restructure P.1
Diffstat (limited to 'src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs')
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs350
1 files changed, 0 insertions, 350 deletions
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs b/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
deleted file mode 100644
index 43e9a36..0000000
--- a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
+++ /dev/null
@@ -1,350 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-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 UserRepositoryTests
- {
- private DevHiveContext _context;
- private UserRepository _userRepository;
-
- #region Setups
- [SetUp]
- public void Setup()
- {
- var options = new DbContextOptionsBuilder<DevHiveContext>()
- .UseInMemoryDatabase("DevHive_UserRepository_Database");
-
- this._context = new DevHiveContext(options.Options);
- this._userRepository = new UserRepository(_context);
- }
-
- [TearDown]
- public async Task Teardown()
- {
- await this._context.Database.EnsureDeletedAsync();
- }
- #endregion
-
- #region QueryAll
- // [Test]
- // public async Task QueryAll_ShouldReturnAllUsersFromDatabase_WhenTheyExist()
- // {
- // //Arrange
- // User dummyUserOne = CreateDummyUser();
- // User dummyUserTwo = CreateAnotherDummyUser();
- //
- // await this._userRepository.AddAsync(dummyUserOne);
- // await this._userRepository.AddAsync(dummyUserTwo);
- //
- // //Act
- // IEnumerable<User> users = this._userRepository.QueryAll();
- //
- // //Assert
- // Assert.AreEqual(2, users.Count(), "Method doesn't return all instances of user");
- // }
-
- // [Test]
- // public void QueryAll_ReturnsNull_WhenNoUsersExist()
- // {
- // IEnumerable<User> users = this._userRepository.QueryAll();
- //
- // Assert.AreEqual(0, users.Count(), "Method returns Users when there are non");
- // }
- #endregion
-
- #region EditAsync
- [Test]
- public async Task EditAsync_ReturnsTrue_WhenUserIsUpdatedSuccessfully()
- {
- User oldUser = this.CreateDummyUser();
- this._context.Users.Add(oldUser);
- await this._context.SaveChangesAsync();
-
- oldUser.UserName = "SuperSecretUserName";
- bool result = await this._userRepository.EditAsync(oldUser.Id, oldUser);
-
- Assert.IsTrue(result, "EditAsync does not return true when User is updated successfully");
- }
- #endregion
-
- #region GetByIdAsync
- [Test]
- public async Task GetByIdAsync_ReturnsTheUse_WhenItExists()
- {
- User dummyUserOne = CreateDummyUser();
- await this._userRepository.AddAsync(dummyUserOne);
-
- User resultUser = await this._userRepository.GetByIdAsync(dummyUserOne.Id);
-
- Assert.AreEqual(dummyUserOne.UserName, resultUser.UserName);
- }
-
- [Test]
- public async Task GetByIdAsync_ReturnsNull_WhenUserDoesNotExist()
- {
- Guid id = Guid.NewGuid();
-
- User resultUser = await this._userRepository.GetByIdAsync(id);
-
- Assert.IsNull(resultUser);
- }
- #endregion
-
- #region GetByUsernameAsync
- [Test]
- public async Task GetByUsernameAsync_ReturnsUserFromDatabase_WhenItExists()
- {
- //Arrange
- User dummyUser = CreateDummyUser();
- await this._userRepository.AddAsync(dummyUser);
- string username = dummyUser.UserName;
-
- //Act
- User user = await this._userRepository.GetByUsernameAsync(username);
-
- //Assert
- Assert.AreEqual(dummyUser.Id, user.Id, "Method doesn't get the proper user from database");
- }
-
- [Test]
- public async Task GetByUsernameAsync_ReturnsNull_WhenUserDoesNotExist()
- {
- //Act
- User user = await this._userRepository.GetByUsernameAsync(null);
-
- //Assert
- Assert.IsNull(user, "Method returns user when it does not exist");
- }
- #endregion
-
- #region DoesUserExistAsync
- [Test]
- public async Task DoesUserExistAsync_ReturnsTrue_WhenUserExists()
- {
- User dummyUser = this.CreateDummyUser();
- this._context.Users.Add(dummyUser);
- await this._context.SaveChangesAsync();
-
- bool result = await this._userRepository.DoesUserExistAsync(dummyUser.Id);
-
- Assert.IsTrue(result, "DoesUserExistAsync does not return true when user exists");
- }
-
- [Test]
- public async Task DoesUserExistAsync_ReturnsFalse_WhenUserDoesNotExist()
- {
- Guid id = Guid.NewGuid();
-
- bool result = await this._userRepository.DoesUserExistAsync(id);
-
- Assert.IsFalse(result, "DoesUserExistAsync does not return false when user does not exist");
- }
- #endregion
-
- #region DoesUserNameExistAsync
- [Test]
- public async Task DoesUsernameExistAsync_ReturnsTrue_WhenUserWithTheNameExists()
- {
- User dummyUser = this.CreateDummyUser();
- this._context.Users.Add(dummyUser);
- await this._context.SaveChangesAsync();
-
- bool result = await this._userRepository.DoesUsernameExistAsync(dummyUser.UserName);
-
- Assert.IsTrue(result, "DoesUserNameExistAsync does not return true when username exists");
- }
-
- [Test]
- public async Task DoesUsernameExistAsync_ReturnsFalse_WhenUserWithTheNameDoesNotExist()
- {
- string userName = "Fake name";
-
- bool result = await this._userRepository.DoesUsernameExistAsync(userName);
-
- Assert.IsFalse(result, "DoesUserNameExistAsync does not return false when username does not exist");
- }
- #endregion
-
- #region DoesEmailExistAsync
- [Test]
- public async Task DoesEmailExistAsync_ReturnsTrue_WhenUserWithTheEmailExists()
- {
- User dummyUser = this.CreateDummyUser();
- this._context.Users.Add(dummyUser);
- await this._context.SaveChangesAsync();
-
- bool result = await this._userRepository.DoesEmailExistAsync(dummyUser.Email);
-
- Assert.IsTrue(result, "DoesUserNameExistAsync does not return true when email exists");
- }
-
- [Test]
- public async Task DoesEmailExistAsync_ReturnsFalse_WhenUserWithTheEmailDoesNotExist()
- {
- string email = "Fake email";
-
- bool result = await this._userRepository.DoesUsernameExistAsync(email);
-
- Assert.IsFalse(result, "DoesUserNameExistAsync does not return false when email does not exist");
- }
- #endregion
-
- #region DoesUserHaveThisFriendAsync
- //[Test]
- //public async Task DoesUserHaveThisFriendAsync_ReturnsTrue_WhenUserHasTheGivenFriend()
- //{
- // User dummyUser = this.CreateDummyUser();
- // User anotherDummyUser = this.CreateAnotherDummyUser();
- // HashSet<User> friends = new HashSet<User>
- // {
- // anotherDummyUser
- // };
- // dummyUser.Friends = friends;
-
- // this._context.Users.Add(dummyUser);
- // this._context.Users.Add(anotherDummyUser);
- // await this._context.SaveChangesAsync();
-
- // bool result = await this._userRepository.DoesUserHaveThisFriendAsync(dummyUser.Id, anotherDummyUser.Id);
-
- // Assert.IsTrue(result, "DoesUserHaveThisFriendAsync does not return true when user has the given friend");
- //}
-
- // [Test]
- // public async Task DoesUserHaveThisFriendAsync_ReturnsFalse_WhenUserDoesNotHaveTheGivenFriend()
- // {
- // User dummyUser = this.CreateDummyUser();
- // User anotherDummyUser = this.CreateAnotherDummyUser();
- //
- // this._context.Users.Add(dummyUser);
- // this._context.Users.Add(anotherDummyUser);
- // await this._context.SaveChangesAsync();
- //
- // bool result = await this._userRepository.DoesUserHaveThisFriendAsync(dummyUser.Id, anotherDummyUser.Id);
- //
- // Assert.IsFalse(result, "DoesUserHaveThisFriendAsync does not return false when user des not have the given friend");
- // }
- #endregion
-
- #region DoesUserHaveThisUsername
- [Test]
- public async Task DoesUserHaveThisUsername_ReturnsTrue_WhenUserHasTheGivenUsername()
- {
- User dummyUser = this.CreateDummyUser();
- this._context.Users.Add(dummyUser);
- await this._context.SaveChangesAsync();
-
- bool result = this._userRepository.DoesUserHaveThisUsername(dummyUser.Id, dummyUser.UserName);
-
- Assert.IsTrue(result, "DoesUserHaveThisUsername does not return true when the user has the given name");
- }
-
- [Test]
- public async Task DoesUserHaveThisUsername_ReturnsFalse_WhenUserDoesntHaveTheGivenUsername()
- {
- string username = "Fake username";
- User dummyUser = this.CreateDummyUser();
- this._context.Users.Add(dummyUser);
- await this._context.SaveChangesAsync();
-
- bool result = this._userRepository.DoesUserHaveThisUsername(dummyUser.Id, username);
-
- Assert.IsFalse(result, "DoesUserNameExistAsync does not return false when user doesnt have the given name");
- }
- #endregion
-
- #region HelperMethods
- private User CreateDummyUser()
- {
- HashSet<Language> languages = new()
- {
- new Language()
- {
- Id = Guid.NewGuid(),
- Name = "csharp"
- },
- };
-
- HashSet<Technology> technologies = new()
- {
- new Technology()
- {
- Id = Guid.NewGuid(),
- Name = "ASP.NET Core"
- },
- };
-
- HashSet<Role> roles = new()
- {
- new Role()
- {
- Id = Guid.NewGuid(),
- Name = Role.DefaultRole
- },
- };
-
- return new()
- {
- Id = Guid.NewGuid(),
- UserName = "dummyUser",
- FirstName = "Spas",
- LastName = "Spasov",
- Email = "abv@abv.bg",
- Languages = languages,
- Technologies = technologies,
- Roles = roles
- };
- }
-
- private User CreateAnotherDummyUser()
- {
- HashSet<Language> languages = new()
- {
- new Language()
- {
- Id = Guid.NewGuid(),
- Name = "typescript"
- },
- };
-
- HashSet<Technology> technologies = new()
- {
- new Technology()
- {
- Id = Guid.NewGuid(),
- Name = "Angular"
- },
- };
-
- HashSet<Role> roles = new()
- {
- new Role()
- {
- Id = Guid.NewGuid(),
- Name = Role.DefaultRole
- },
- };
-
- return new()
- {
- Id = Guid.NewGuid(),
- UserName = "anotherDummyUser",
- FirstName = "Alex",
- LastName = "Spiridonov",
- Email = "a_spiridonov@abv.bg",
- Languages = languages,
- Technologies = technologies,
- Roles = roles
- };
- }
- #endregion
- }
-}