-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added server side validation for gamer
- Loading branch information
Showing
6 changed files
with
203 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
using BoardGamesNook.Validators; | ||
using BoardGamesNook.ViewModels.Gamer; | ||
using FluentValidation.TestHelper; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
namespace BoardGamesNook.Tests | ||
{ | ||
[TestClass] | ||
public class GamerValidationTest | ||
{ | ||
private readonly GamerValidator _gamerValidator; | ||
|
||
public GamerValidationTest() | ||
{ | ||
_gamerValidator = new GamerValidator(); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("")] | ||
[DataRow("a")] | ||
[DataRow("aa")] | ||
public void NicknameThrowsError(string nick) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Nickname = nick | ||
}; | ||
_gamerValidator.ShouldHaveValidationErrorFor(x => x.Nickname, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("aaa")] | ||
[DataRow("aaaa")] | ||
public void NicknamePasses(string nick) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Nickname = nick | ||
}; | ||
_gamerValidator.ShouldNotHaveValidationErrorFor(x => x.Nickname, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("")] | ||
[DataRow("a")] | ||
[DataRow("aa")] | ||
[DataRow("1234")] | ||
public void NameThrowsError(string name) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Name = name | ||
}; | ||
_gamerValidator.ShouldHaveValidationErrorFor(x => x.Name, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("aaa")] | ||
[DataRow("aaaa")] | ||
public void NamePasses(string name) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Name = name | ||
}; | ||
_gamerValidator.ShouldNotHaveValidationErrorFor(x => x.Name, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("")] | ||
[DataRow("a")] | ||
[DataRow("aa")] | ||
[DataRow("1234")] | ||
public void SurnameThrowsError(string surname) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Surname = surname | ||
}; | ||
_gamerValidator.ShouldHaveValidationErrorFor(x => x.Surname, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("aaa")] | ||
[DataRow("aaaa")] | ||
public void SurnamePasses(string surname) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Surname = surname | ||
}; | ||
_gamerValidator.ShouldNotHaveValidationErrorFor(x => x.Surname, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("")] | ||
[DataRow("a")] | ||
[DataRow("aa@")] | ||
public void EmailThrowsError(string email) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Email = email | ||
}; | ||
_gamerValidator.ShouldHaveValidationErrorFor(x => x.Email, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("test@test.pl")] | ||
[DataRow("a@test.com")] | ||
public void EmailPasses(string email) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
Email = email | ||
}; | ||
_gamerValidator.ShouldNotHaveValidationErrorFor(x => x.Email, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("")] | ||
[DataRow("a")] | ||
[DataRow("aa")] | ||
[DataRow("1234")] | ||
public void CityThrowsError(string city) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
City = city | ||
}; | ||
_gamerValidator.ShouldHaveValidationErrorFor(x => x.City, gamer); | ||
} | ||
|
||
[DataTestMethod] | ||
[DataRow("aaa")] | ||
[DataRow("aaaa")] | ||
public void CityPasses(string city) | ||
{ | ||
var gamer = new GamerViewModel | ||
{ | ||
City = city | ||
}; | ||
_gamerValidator.ShouldNotHaveValidationErrorFor(x => x.City, gamer); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using BoardGamesNook.ViewModels.Gamer; | ||
using FluentValidation; | ||
|
||
namespace BoardGamesNook.Validators | ||
{ | ||
public class GamerValidator : AbstractValidator<GamerViewModel> | ||
{ | ||
public GamerValidator() | ||
{ | ||
RuleFor(gamer => gamer.Nickname) | ||
.NotEmpty().WithMessage("Podaj nick!") | ||
.MinimumLength(3).WithMessage("Nickname musi się składać z minimum 3 znaków!"); | ||
RuleFor(gamer => gamer.Name) | ||
.NotEmpty().WithMessage("Podaj imię!") | ||
.MinimumLength(3).WithMessage("Imię musi się składać z minimum 3 znaków!") | ||
.Matches("^[a-zA-Z\\s]+$").WithMessage("Imię musi się składać z liter!"); | ||
RuleFor(gamer => gamer.Surname) | ||
.NotEmpty().WithMessage("Podaj nazwisko!") | ||
.MinimumLength(3).WithMessage("Nazwisko musi się składać z minimum 3 znaków!") | ||
.Matches("^[a-zA-Z\\s]+$").WithMessage("Nazwisko musi się składać z liter!"); | ||
RuleFor(gamer => gamer.Email) | ||
.NotEmpty().WithMessage("Podaj adres email!") | ||
.EmailAddress().WithMessage("Nieprawidłowy adres email!"); | ||
RuleFor(gamer => gamer.City) | ||
.NotEmpty().WithMessage("Podaj miasto!") | ||
.MinimumLength(3).WithMessage("Nazwa miasta musi się składać z minimum 3 znaków!") | ||
.Matches("^[a-zA-Z\\s]+$").WithMessage("Miasto musi się składać z liter!"); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters