@ -18,7 +18,7 @@ public class UserUnitTest
}
}
[Fact]
[Fact]
public void GetNumberOfUsers ( )
public void GetNumberOfUsers Success ( )
{
{
var userList = GetUsersData ( ) ;
var userList = GetUsersData ( ) ;
_userService . Setup ( x = > x . GetNumberOfUsers ( ) )
_userService . Setup ( x = > x . GetNumberOfUsers ( ) )
@ -29,12 +29,30 @@ public class UserUnitTest
if ( userResult is OkObjectResult okObjectResult )
if ( userResult is OkObjectResult okObjectResult )
{
{
var valeur = ( okObjectResult . Value as KeyValuePair < string , int > ? ) ;
var valeur = ( okObjectResult . Value as KeyValuePair < string , int > ? ) ;
Assert . NotNull ( valeur ) ;
Assert . NotNull ( valeur ) ;
Assert . Equal ( userList . Count , valeur . Value . Value ) ;
Assert . Equal ( userList . Count , valeur . Value . Value ) ;
}
}
}
}
[Fact]
public void GetNumberOfUsers_Fail_Cause_Not_Found ( )
{
var userList = GetUsersData ( ) ;
_userService . Setup ( x = > x . GetNumberOfUsers ( ) )
. Returns ( 0 ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . GetNumberOfUsers ( ) ;
if ( userResult is StatusCodeResult statusCodeResult & & statusCodeResult . StatusCode = = 204 )
{
Assert . IsNotType < OkObjectResult > ( userResult ) ;
}
}
[Fact]
[Fact]
public void GetUsersListSuccess ( )
public void GetUsersListSuccess ( )
{
{
@ -55,6 +73,22 @@ public class UserUnitTest
}
}
}
}
[Fact]
public void GetUserListFail ( )
{
_userService . Setup ( x = > x . GetUsers ( 1 , 4 , 0 ) )
. Returns ( new List < UserDto > ( ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . GetUsers ( 2 , 3 , 0 ) ;
if ( userResult is StatusCodeResult statusCodeResult & & statusCodeResult . StatusCode = = 204 )
{
Assert . IsNotType < OkObjectResult > ( userResult ) ;
}
}
[Fact]
[Fact]
public void GetNotAdminUsersListSuccess ( )
public void GetNotAdminUsersListSuccess ( )
{
{
@ -65,29 +99,31 @@ public class UserUnitTest
var userResult = usersController . GetNotAdminUsers ( 1 , 4 , 0 ) ;
var userResult = usersController . GetNotAdminUsers ( 1 , 4 , 0 ) ;
if ( userResult is OkObjectResult okObjectResult )
if ( userResult is StatusCodeResult statusCodeResult & & statusCodeResult . StatusCode = = 204 )
{
var valeur = okObjectResult . Value ;
Assert . NotNull ( valeur ) ;
{
Assert . Equal ( GetUsersData ( ) . ToString ( ) , valeur . ToString ( ) ) ;
Assert . IsNotType < OkObjectResult > ( userResult ) ;
Assert . True ( userList . Where ( u = > u . IsAdmin = = false ) . SequenceEqual ( valeur as IEnumerable < UserDto > , new UserIdEqualityComparer ( ) ) ) ;
}
}
}
}
[Fact]
[Fact]
public void Get UserListFail( )
public void Get NotAdmin Users ListFail_Cause_Not_Found ( )
{
{
_userService . Setup ( x = > x . GetUsers ( 1 , 4 , 0 ) )
var userList = GetUsersData ( ) ;
. Returns ( new List < UserDto > ( ) ) ;
_userService . Setup ( x = > x . GetNotAdminUsers ( 1 , 4 , 0 ) )
. Returns ( userList . Where ( u = > u . IsAdmin = = false ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . GetUsers ( 2 , 3 , 0 ) ;
var userResult = usersController . GetNotAdminUsers ( 100 , 4 , 0 ) ;
if ( userResult is StatusCodeResult statusCodeResult & & statusCodeResult . StatusCode = = 204 )
if ( userResult is OkObjectResult okObjectResult )
{
{
Assert . IsNotType < OkObjectResult > ( userResult ) ;
var valeur = okObjectResult . Value ;
Assert . NotNull ( valeur ) ;
Assert . Equal ( GetUsersData ( ) . ToString ( ) , valeur . ToString ( ) ) ;
Assert . True ( userList . Where ( u = > u . IsAdmin = = false )
. SequenceEqual ( valeur as IEnumerable < UserDto > , new UserIdEqualityComparer ( ) ) ) ;
}
}
}
}
@ -115,7 +151,7 @@ public class UserUnitTest
}
}
[Fact]
[Fact]
public void GetUserIdFail ( )
public void GetUserIdFail _Id_Doesnt_Exist ( )
{
{
var userList = GetUsersData ( ) ;
var userList = GetUsersData ( ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) )
_userService . Setup ( x = > x . GetUserById ( 1 ) )
@ -133,6 +169,26 @@ public class UserUnitTest
}
}
}
}
[Fact]
public void GetUserIdFail__Argument_Exception_Negative_Id ( )
{
var userList = GetUsersData ( ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) )
. Returns ( userList [ 1 ] ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . GetUserById ( - 1 ) ;
if ( userResult is NotFoundObjectResult nfObjectResult )
{
var valeur = nfObjectResult . Value ;
Assert . NotNull ( valeur ) ;
Assert . IsNotType < UserDto > ( valeur ) ;
Assert . DoesNotContain ( valeur , userList ) ;
}
}
[Fact]
[Fact]
public void GetUserUsernameSuccess ( )
public void GetUserUsernameSuccess ( )
{
{
@ -155,6 +211,7 @@ public class UserUnitTest
Assert . True ( valeur . IsAdmin ) ;
Assert . True ( valeur . IsAdmin ) ;
}
}
}
}
[Fact]
[Fact]
public void GetUserEmailSuccess ( )
public void GetUserEmailSuccess ( )
{
{
@ -198,6 +255,7 @@ public class UserUnitTest
Assert . False ( userList = = valeur ) ;
Assert . False ( userList = = valeur ) ;
}
}
}
}
[Fact]
[Fact]
public void GetUserEmailFail ( )
public void GetUserEmailFail ( )
{
{
@ -271,7 +329,7 @@ public class UserUnitTest
}
}
[Fact]
[Fact]
public void CreateUserFail ( )
public void CreateUserFail _When_Field_Null ( )
{
{
GetUsersData ( ) ;
GetUsersData ( ) ;
_userService . Setup ( x = > x . CreateUser ( "Nom" , "Passssss" , "heudfk@hdye.com" , true ) )
_userService . Setup ( x = > x . CreateUser ( "Nom" , "Passssss" , "heudfk@hdye.com" , true ) )
@ -285,6 +343,8 @@ public class UserUnitTest
Assert . Equal ( 400 , bdObjectResult . StatusCode ) ;
Assert . Equal ( 400 , bdObjectResult . StatusCode ) ;
}
}
}
}
[Fact]
[Fact]
public void CreateUserWithExistingEmail ( )
public void CreateUserWithExistingEmail ( )
{
{
@ -293,22 +353,23 @@ public class UserUnitTest
. Returns ( new UserDto ( "Nom" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
. Returns ( new UserDto ( "Nom" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . CreateUser ( new UserDto ( null , "Passssss" , "adressemail@gmail.com" , true ) ) ;
var userResult = usersController . CreateUser ( new UserDto ( "user" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
if ( userResult is BadRequestResult bdObjectResult )
if ( userResult is BadRequestResult bdObjectResult )
{
{
Assert . Equal ( 40 0 , bdObjectResult . StatusCode ) ;
Assert . Equal ( 40 9 , bdObjectResult . StatusCode ) ;
}
}
}
}
[Fact]
[Fact]
public void CreateUserWithExistingUsername ( )
public void CreateUserWithExistingUsername ( )
{
{
GetUsersData ( ) ;
GetUsersData ( ) ;
_userService . Setup ( x = > x . CreateUser ( " Useruser", "Passssss" , "heudfk@hdye .com", true ) )
_userService . Setup ( x = > x . CreateUser ( " Nom", "Passssss" , "adressemail@gmail .com", true ) )
. Returns ( new UserDto ( " Useruser", "Passssss" , "heudfk@hdye .com", true ) ) ;
. Returns ( new UserDto ( " Nom", "Passssss" , "adressemail@gmail .com", true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . CreateUser ( new UserDto ( "Useruser" , "Passssss" , " heudfk@hdye .com", true ) ) ;
var userResult = usersController . CreateUser ( new UserDto ( "Useruser" , "Passssss" , " adressemail@gmail .com", true ) ) ;
if ( userResult is BadRequestResult bdObjectResult )
if ( userResult is BadRequestResult bdObjectResult )
{
{
@ -350,6 +411,154 @@ public class UserUnitTest
Assert . Equal ( 400 , bdObjectResult . StatusCode ) ;
Assert . Equal ( 400 , bdObjectResult . StatusCode ) ;
}
}
}
}
[Fact]
public void UpdateUserFailWithExistingUsername ( )
{
_userService . Setup ( x = > x . IsUsernameTaken ( "Useruser" ) ) . Returns ( true ) ;
_userService . Setup ( x = > x . IsEmailTaken ( "heudfk@hdye.com" ) ) . Returns ( false ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) ) . Returns ( new UserDto ( 1 , "Leuser" , "motdepasse" , "deuxadresse@gmail.com" , true ) ) ;
_userService . Setup ( x = > x . UpdateUser ( 1 , new UserDto ( 1 , "Useruser" , "Passssss" , "heudfk@hdye.com" , true ) ) )
. Returns ( new UserDto ( "Useruser" , "Passssss" , "heudfk@hdye.com" , true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . UpdateUser ( 1 , new UserDto ( 1 , "Useruser" , "Passssss" , "heudfk@hdye.com" , true ) ) ;
if ( userResult is StatusCodeResult statusCodeResult )
{
Assert . Equal ( 409 , statusCodeResult . StatusCode ) ;
}
}
[Fact]
public void UpdateUserFailWithExistingEmail ( )
{
_userService . Setup ( x = > x . IsUsernameTaken ( "Test1234" ) ) . Returns ( false ) ;
_userService . Setup ( x = > x . IsEmailTaken ( "adressemail@gmail.com" ) ) . Returns ( true ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) ) . Returns ( new UserDto ( 1 , "Leuser" , "motdepasse" , "deuxadresse@gmail.com" , true ) ) ;
_userService . Setup ( x = > x . UpdateUser ( 1 , new UserDto ( 1 , "Test1234" , "Passssss" , "adressemail@gmail.com" , true ) ) )
. Returns ( new UserDto ( "Test1234" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . UpdateUser ( 1 , new UserDto ( 1 , "Test1234" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
if ( userResult is StatusCodeResult statusCodeResult )
{
Assert . Equal ( 409 , statusCodeResult . StatusCode ) ;
}
}
[Fact]
public void UpdateUserFailWithExistingEmailAndExistingUsername ( )
{
_userService . Setup ( x = > x . IsUsernameTaken ( "Useruser" ) ) . Returns ( true ) ;
_userService . Setup ( x = > x . IsEmailTaken ( "adressemail@gmail.com" ) ) . Returns ( true ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) ) . Returns ( new UserDto ( 1 , "Leuser" , "motdepasse" , "deuxadresse@gmail.com" , true ) ) ;
_userService . Setup ( x = > x . UpdateUser ( 1 , new UserDto ( 1 , "Useruser" , "Passssss" , "adressemail@gmail.com" , true ) ) )
. Returns ( new UserDto ( "Useruser" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . UpdateUser ( 1 , new UserDto ( 1 , "Useruser" , "Passssss" , "adressemail@gmail.com" , true ) ) ;
if ( userResult is StatusCodeResult statusCodeResult )
{
Assert . Equal ( 409 , statusCodeResult . StatusCode ) ;
}
}
[Fact]
public void UpdateUserSucessWithSameEmail ( )
{
_userService . Setup ( x = > x . IsUsernameTaken ( "Test1234" ) ) . Returns ( false ) ;
_userService . Setup ( x = > x . IsEmailTaken ( "deuxadresse@gmail.com" ) ) . Returns ( true ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) ) . Returns ( new UserDto ( 1 , "Leuser" , "motdepasse" , "deuxadresse@gmail.com" , true ) ) ;
_userService . Setup ( x = > x . UpdateUser ( 1 , new UserDto ( 1 , "Test1234" , "Passssss" , "deuxadresse@gmail.com" , true ) ) )
. Returns ( new UserDto ( "Test1234" , "Passssss" , "deuxadresse@gmail.com" , true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . UpdateUser ( 1 , new UserDto ( 1 , "Test1234" , "Passssss" , "deuxadresse@gmail.com" , true ) ) ;
if ( userResult is OkObjectResult okObjectResult )
{
UserDto valeur = okObjectResult . Value as UserDto ;
Assert . NotNull ( valeur ) ;
Assert . Equal ( "Test1234" , valeur . Username ) ;
Assert . Equal ( "Passssss" , valeur . Password ) ;
Assert . Equal ( "deuxadresse@gmail.com" , valeur . Email ) ;
Assert . True ( valeur . IsAdmin ) ;
}
}
[Fact]
public void UpdateUserSucessWithSameUsername ( )
{
_userService . Setup ( x = > x . IsUsernameTaken ( "Leuser" ) ) . Returns ( true ) ;
_userService . Setup ( x = > x . IsEmailTaken ( "heudfk@hdye.com" ) ) . Returns ( false ) ;
_userService . Setup ( x = > x . GetUserById ( 1 ) ) . Returns ( new UserDto ( 1 , "Leuser" , "motdepasse" , "deuxadresse@gmail.com" , true ) ) ;
_userService . Setup ( x = > x . UpdateUser ( 1 , new UserDto ( 1 , "Test1234" , "Passssss" , "heudfk@hdye.com" , true ) ) )
. Returns ( new UserDto ( "Leuser" , "Passssss" , "heudfk@hdye.com" , true ) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . UpdateUser ( 1 , new UserDto ( 1 , "Leuser" , "Passssss" , "heudfk@hdye.com" , true ) ) ;
if ( userResult is OkObjectResult okObjectResult )
{
UserDto valeur = okObjectResult . Value as UserDto ;
Assert . NotNull ( valeur ) ;
Assert . Equal ( "Leuser" , valeur . Username ) ;
Assert . Equal ( "Passssss" , valeur . Password ) ;
Assert . Equal ( "heudfk@hdye.com" , valeur . Email ) ;
Assert . True ( valeur . IsAdmin ) ;
}
}
[Fact]
public void PromoteUserSuccess ( )
{
_userService . Setup ( x = > x . PromoteUser ( 1 ) )
. Returns ( new UserDto (
1 ,
"Leuser" ,
"motdepasse" ,
"deuxadresse@gmail.com" ,
true
) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . PromoteUser ( 1 ) ;
if ( userResult is OkObjectResult okObjectResult )
{
UserDto valeur = okObjectResult . Value as UserDto ;
Assert . NotNull ( valeur ) ;
Assert . Equal ( "Leuser" , valeur . Username ) ;
Assert . Equal ( "motdepasse" , valeur . Password ) ;
Assert . Equal ( "deuxadresse@gmail.com" , valeur . Email ) ;
Assert . True ( valeur . IsAdmin ) ;
}
}
[Fact]
public void PromoteUserFail ( )
{
_userService . Setup ( x = > x . PromoteUser ( 1 ) )
. Returns ( new UserDto (
1 ,
"Leuser" ,
"motdepasse" ,
"deuxadresse@gmail.com" ,
true
) ) ;
var usersController = new UsersController ( new NullLogger < UsersController > ( ) , _userService . Object ) ;
var userResult = usersController . PromoteUser ( 356262 ) ;
if ( userResult is BadRequestResult bdObjectResult )
{
Assert . Equal ( 404 , bdObjectResult . StatusCode ) ;
}
}
private List < UserDto > GetUsersData ( )
private List < UserDto > GetUsersData ( )
{
{