Skip to content

Commit

Permalink
feature: Password-Check funkt
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeMitterer committed Oct 22, 2015
1 parent d49bebc commit b442883
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 36 deletions.
12 changes: 12 additions & 0 deletions lib/src/constraints/matchers.dart
Expand Up @@ -101,6 +101,18 @@ class Uuid extends Pattern {

const Matcher isUuid = const Uuid(message: const L10N("Nur für Annotation!"));

class Password extends Pattern {
static const String _PATTERN_PASSWORD = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#\$%])[0-9a-zA-Z@#\$%]{8,15}\$";

const Password({final L10N message}) : super(pattern: _PATTERN_PASSWORD, message: message);

Description describe(Description description) => description.add("Not a valid password");

String get valueToCheckAgainst => "Password ($_PATTERN_PASSWORD)";
}

const Matcher isPassword = const Password(message: const L10N("Nur für Annotation!"));

class NotEmptyAndNotNull extends Constraint {

const NotEmptyAndNotNull({final L10N message}) : super(message);
Expand Down
34 changes: 34 additions & 0 deletions test/unit/_resources/TestClasses.dart
Expand Up @@ -88,4 +88,38 @@ part of unit.test;
// int getAge() {
// return super.getAge();
// }
}

class Name {

Name(this.firstname);

@NotEmptyAndNotNull(message: const L10N( "Firstname must not be {{what}}", const { "what" : "EMPTY" }))
@MinLenght(4, message: const L10N( "Firstname ({{value}}) must be at least 4 characters long"))
final String firstname;

@MinLenght(4, message: const L10N( "{{field}} must be at least {{value.to.check.against}} chars long but was only {{value.length}} characters long"))
String get name => firstname;
}

class Name2 extends Name {
Name2(final String name) : super(name);
}

class Name3 extends Name2 {
Name3(final String name) : super(name);

@MinLenght(3, message: const L10N( "{{field}} must be at least {{value.to.check.against}} chars long but was only {{value.length}} characters long"))
String get name => firstname;
}

class UsernamePassword {

@EMail(message: const L10N( "{{value}} is not a valid eMail address"))
final String username;

@Password(message: const L10N( "{{value}} is not a valid password"))
final String password;

UsernamePassword(this.username, this.password);
}
37 changes: 14 additions & 23 deletions test/unit/beanvalidator/BeanValidator_test.dart
@@ -1,28 +1,5 @@
part of unit.test;

class Name {

Name(this.firstname);

@NotEmptyAndNotNull(message: const L10N( "Firstname must not be {{what}}", const { "what" : "EMPTY" }))
@MinLenght(4, message: const L10N( "Firstname ({{value}}) must be at least 4 characters long"))
final String firstname;

@MinLenght(4, message: const L10N( "{{field}} must be at least {{value.to.check.against}} chars long but was only {{value.length}} characters long"))
String get name => firstname;
}

class Name2 extends Name {
Name2(final String name) : super(name);
}

class Name3 extends Name2 {
Name3(final String name) : super(name);

@MinLenght(3, message: const L10N( "{{field}} must be at least {{value.to.check.against}} chars long but was only {{value.length}} characters long"))
String get name => firstname;
}

testBeanValidator() {
final Logger _logger = new Logger("unit.test.BeanValidator");

Expand Down Expand Up @@ -219,6 +196,20 @@ testBeanValidator() {

}); // end of 'UUID' test

test('> Password', () {
final UsernamePassword userpassword = new UsernamePassword("joe@test.com", "12345678aA%");
final UsernamePassword invalidUP = new UsernamePassword("joe@test.com", "12345678aA");

final BeanValidator<UsernamePassword> beanValidator = new BeanValidator<UsernamePassword>();
final List<ViolationInfo> violationinfos = beanValidator.validate(userpassword);

expect(violationinfos.length,0);

final List<ViolationInfo> violationinfos2 = beanValidator.validate(invalidUP);
expect(violationinfos2.length,1);
expect(violationinfos2[0].message,"12345678aA is not a valid password");

}); // end of 'UUID' test
});
// end 'BeanValidator' group

Expand Down
21 changes: 21 additions & 0 deletions test/unit/constraints/Matcher_test.dart
Expand Up @@ -73,6 +73,27 @@ testMatchers() {
});
// End of '> Uuid' group

group('> Password', () {
final String password = "12345678aB#";
final String invalidPassword = "0123456789abcdefgB0123456789abcdefgB#";

test('> Valid Password', () {
expect(password, new Password(message: l10n("Hier nicht notwendig")));
expect(password, isPassword);
}); // end of 'Valid UUID' test

test('> Invalid Password', () {
expect("Hallo", isNot(new Password(message: l10n("Hier nicht notwendig"))));
expect(null, isNot(isPassword));
expect("12345678aB# a", isNot(isPassword));
expect("12345678aB# ", isNot(isPassword));
expect(invalidPassword, isNot(isPassword));
});
// end of 'Invalid UUID' test

});
// End of '> Password' group

group('> NotEmptyAndNotNull', () {

test('> NotEmptyAndNotNull', () {
Expand Down
13 changes: 0 additions & 13 deletions test/unit/index.html

This file was deleted.

0 comments on commit b442883

Please sign in to comment.