diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6986f34..e95bb19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: push: branches: - '!main' - - '!release/**' + - 'feature/**' jobs: build: diff --git a/docs/README.md b/docs/README.md index 128e5b8..ddfd822 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,18 +1,21 @@ # Modular Validators -| [![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=sddevelopment-be_modular-validators)](https://sonarcloud.io/summary/new_code?id=sddevelopment-be_modular-validators) | [Test report](serenity/) | [JavaDoc](apidocs/) | - -A lightweight validation framework for the JVM, allowing for internal and external validation logic to be combined in a transparent and reusable +A lightweight validation framework for the JVM, allowing for internal and external validation logic to be combined in a transparent and reusable way. +| [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=sddevelopment-be_modular-validators&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=sddevelopment-be_modular-validators) | [Test report](serenity/) | [JavaDoc](apidocs/) | + +--- + -* [Modular Validators](#modular-validators) - * [Value statement](#value-statement) - * [Problem](#problem) - * [Proposed solution](#proposed-solution) - * [Contributing](#contributing) +* [Value statement](#value-statement) + * [Problem](#problem) + * [Proposed solution](#proposed-solution) +* [Contributing](#contributing) +--- + ## Value statement ### Problem diff --git a/docs/apidocs/allclasses-index.html b/docs/apidocs/allclasses-index.html index b5307c2..b00325b 100644 --- a/docs/apidocs/allclasses-index.html +++ b/docs/apidocs/allclasses-index.html @@ -1,11 +1,11 @@ - + All Classes and Interfaces (modular-validators 1.0.0-SNAPSHOT API) - + @@ -52,32 +52,36 @@

All Classes and Interfaces

-
+
Class
Description
- +
-
Checked class.
+
Evaluated class.
+ +
+
ValidationRule class.
+
+ +
 
Evaluation class.
- -
 
- + +
 
+
 
- +
 
- -
-
Reason class.
-
- + +
 
+
-
ValidationRule class.
+
Reason class.
diff --git a/docs/apidocs/allpackages-index.html b/docs/apidocs/allpackages-index.html index 6a7bb32..aa84117 100644 --- a/docs/apidocs/allpackages-index.html +++ b/docs/apidocs/allpackages-index.html @@ -1,11 +1,11 @@ - + All Packages (modular-validators 1.0.0-SNAPSHOT API) - + diff --git a/docs/apidocs/be/sddevelopment/validation/Checked.html b/docs/apidocs/be/sddevelopment/validation/Checked.html index 8d17b23..1a1fbf0 100644 --- a/docs/apidocs/be/sddevelopment/validation/Checked.html +++ b/docs/apidocs/be/sddevelopment/validation/Checked.html @@ -1,11 +1,11 @@ - + Checked (modular-validators 1.0.0-SNAPSHOT API) - + @@ -120,6 +120,12 @@

Method Summary

Modifier and Type
Method
Description
+
void
+
guard(String errorMessage)
+
 
+
boolean
+ +
 
boolean
 
@@ -153,6 +159,12 @@

isValid

  • +
    +

    isInvalid

    +
    public boolean isInvalid()
    +
    +
  • +
  • of

    public static <T> Checked<T> of(T toValidate)
    @@ -164,6 +176,17 @@

    rationale

    public Optional<EvaluationRationale> rationale()
  • +
  • +
    +

    guard

    +
    public void guard(String errorMessage) + throws InvalidObjectException
    +
    +
    Throws:
    +
    InvalidObjectException
    +
    +
    +
  • diff --git a/docs/apidocs/be/sddevelopment/validation/Constrainable.html b/docs/apidocs/be/sddevelopment/validation/Constrainable.html new file mode 100644 index 0000000..88c3216 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/Constrainable.html @@ -0,0 +1,232 @@ + + + + +Constrainable (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class Constrainable<T>

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.Constrainable<T>
    +
    +
    +
    +
    public final class Constrainable<T> +extends Object
    +

    Evaluated class.

    +

    + Represents the result of evaluating an object of any type. + The result of said evaluation is represented by a Rationale. + The original object is maintained as well, to allow for further processing, and flexibility in dealing with various validation states. +

    + + Intended as a monadic structure to allow for fluent programming with the result of a validation.
    +
    +
    Version:
    +
    1.0.0-SNAPSHOT
    +
    Author:
    +
    stijnd
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/Constraint.ValidationRuleBuilder.html b/docs/apidocs/be/sddevelopment/validation/Constraint.ValidationRuleBuilder.html new file mode 100644 index 0000000..42ec645 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/Constraint.ValidationRuleBuilder.html @@ -0,0 +1,172 @@ + + + + +Constraint.ValidationRuleBuilder (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class Constraint.ValidationRuleBuilder<T>

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.Constraint.ValidationRuleBuilder<T>
    +
    +
    +
    +
    Enclosing class:
    +
    Constraint<T>
    +
    +
    +
    public static class Constraint.ValidationRuleBuilder<T> +extends Object
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/Constraint.html b/docs/apidocs/be/sddevelopment/validation/Constraint.html new file mode 100644 index 0000000..0333003 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/Constraint.html @@ -0,0 +1,311 @@ + + + + +Constraint (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Record Class Constraint<T>

    +
    +
    java.lang.Object +
    java.lang.Record +
    be.sddevelopment.validation.Constraint<T>
    +
    +
    +
    +
    +
    Type Parameters:
    +
    T - type of the object onto which the rule can be applied
    +
    Record Components:
    +
    rule - a method that accepts an object of type T and returns a boolean that indicates if it matches the validation criterium.
    +
    description - textual description of the validation rule
    +
    +
    +
    public record Constraint<T>(Predicate<T> rule, String description) +extends Record
    +

    ValidationRule class.

    + Represents a single validation rule, which can be applied to an object of any type.
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        Constraint

        +
        public Constraint(Predicate<T> rule, + String description)
        +
        Creates an instance of a Constraint record class.
        +
        +
        Parameters:
        +
        rule - the value for the rule record component
        +
        description - the value for the description record component
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        ruleFor

        +
        public static <S> +Constraint.ValidationRuleBuilder<S> ruleFor(Class<S> ignoredClass)
        +
        +
      • +
      • +
        +

        equals

        +
        public boolean equals(Object o)
        +
        Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
        +
        +
        Specified by:
        +
        equals in class Record
        +
        Parameters:
        +
        o - the object with which to compare
        +
        Returns:
        +
        true if this object is the same as the o argument; false otherwise.
        +
        +
        +
      • +
      • +
        +

        hashCode

        +
        public int hashCode()
        +
        Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
        +
        +
        Specified by:
        +
        hashCode in class Record
        +
        Returns:
        +
        a hash code value for this object
        +
        +
        +
      • +
      • +
        +

        applyTo

        +
        public Reason applyTo(T toTest)
        +
        +
      • +
      • +
        +

        toString

        +
        public final String toString()
        +
        Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
        +
        +
        Specified by:
        +
        toString in class Record
        +
        Returns:
        +
        a string representation of this object
        +
        +
        +
      • +
      • +
        +

        rule

        +
        public Predicate<T> rule()
        +
        Returns the value of the rule record component.
        +
        +
        Returns:
        +
        the value of the rule record component
        +
        +
        +
      • +
      • +
        +

        description

        +
        public String description()
        +
        Returns the value of the description record component.
        +
        +
        Returns:
        +
        the value of the description record component
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/Evaluated.html b/docs/apidocs/be/sddevelopment/validation/Evaluated.html new file mode 100644 index 0000000..40f0bd9 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/Evaluated.html @@ -0,0 +1,214 @@ + + + + +Evaluated (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class Evaluated<T>

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.Evaluated<T>
    +
    +
    +
    +
    public final class Evaluated<T> +extends Object
    +

    Evaluated class.

    +

    + Represents the result of evaluating an object of any type. + The result of said evaluation is represented by a EvaluationRationale. + The original object is maintained as well, to allow for further processing, and flexibility in dealing with various validation states. +

    + + Intended as a monadic structure to allow for fluent programming with the result of a validation.
    +
    +
    Version:
    +
    1.0.0-SNAPSHOT
    +
    Author:
    +
    stijnd
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/Evaluation.html b/docs/apidocs/be/sddevelopment/validation/Evaluation.html index a957bea..4fa2f41 100644 --- a/docs/apidocs/be/sddevelopment/validation/Evaluation.html +++ b/docs/apidocs/be/sddevelopment/validation/Evaluation.html @@ -1,11 +1,11 @@ - + Evaluation (modular-validators 1.0.0-SNAPSHOT API) - + diff --git a/docs/apidocs/be/sddevelopment/validation/EvaluationRationale.html b/docs/apidocs/be/sddevelopment/validation/EvaluationRationale.html index bb36d0e..2c81050 100644 --- a/docs/apidocs/be/sddevelopment/validation/EvaluationRationale.html +++ b/docs/apidocs/be/sddevelopment/validation/EvaluationRationale.html @@ -1,11 +1,11 @@ - + EvaluationRationale (modular-validators 1.0.0-SNAPSHOT API) - + @@ -87,7 +87,7 @@

    Class EvaluationRationale

    java.lang.Object -
    be.sddevelopment.validation.EvaluationRationale
    +
    be.sddevelopment.validation.Rationale

    @@ -120,7 +120,7 @@

    Method Summary

    Modifier and Type
    Method
    Description
    -
    void
    +
    add(Reason reason)
     
    @@ -166,7 +166,7 @@

    details

  • add

    -
    public void add(Reason reason)
    +
    public EvaluationRationale add(Reason reason)
  • diff --git a/docs/apidocs/be/sddevelopment/validation/InvalidObjectException.html b/docs/apidocs/be/sddevelopment/validation/InvalidObjectException.html new file mode 100644 index 0000000..24ada2c --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/InvalidObjectException.html @@ -0,0 +1,198 @@ + + + + +InvalidObjectException (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class InvalidObjectException

    +
    +
    java.lang.Object +
    java.lang.Throwable +
    java.lang.Exception +
    be.sddevelopment.validation.InvalidObjectException
    +
    +
    +
    +
    +
    +
    All Implemented Interfaces:
    +
    Serializable
    +
    +
    +
    public class InvalidObjectException +extends Exception
    +
    +
    See Also:
    +
    + +
    +
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        InvalidObjectException

        +
        public InvalidObjectException(String errorMessage, + Rationale rationale)
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        errors

        +
        public List<String> errors()
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/ModularRuleset.ModularValidatorBuilder.html b/docs/apidocs/be/sddevelopment/validation/ModularRuleset.ModularValidatorBuilder.html new file mode 100644 index 0000000..a78d848 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/ModularRuleset.ModularValidatorBuilder.html @@ -0,0 +1,192 @@ + + + + +ModularRuleset.ModularValidatorBuilder (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class ModularRuleset.ModularValidatorBuilder<S>

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder<S>
    +
    +
    +
    +
    Enclosing class:
    +
    ModularRuleset<T>
    +
    +
    +
    public static class ModularRuleset.ModularValidatorBuilder<S> +extends Object
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/ModularRuleset.html b/docs/apidocs/be/sddevelopment/validation/ModularRuleset.html new file mode 100644 index 0000000..1f11b63 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/ModularRuleset.html @@ -0,0 +1,220 @@ + + + + +ModularRuleset (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class ModularRuleset<T>

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.ModularRuleset<T>
    +
    +
    +
    +
    public final class ModularRuleset<T> +extends Object
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/ModularValidator.ModularValidatorBuilder.html b/docs/apidocs/be/sddevelopment/validation/ModularValidator.ModularValidatorBuilder.html index bf226f7..06b12ed 100644 --- a/docs/apidocs/be/sddevelopment/validation/ModularValidator.ModularValidatorBuilder.html +++ b/docs/apidocs/be/sddevelopment/validation/ModularValidator.ModularValidatorBuilder.html @@ -1,11 +1,11 @@ - + ModularValidator.ModularValidatorBuilder (modular-validators 1.0.0-SNAPSHOT API) - + @@ -87,7 +87,7 @@

    Class ModularValidator.ModularValidatorBuilder<S>

    java.lang.Object -
    be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder<S>
    +
    be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder<S>
    @@ -112,21 +112,18 @@

    Method Summary

    Method
    Description
    - +
     
    - +
     
    - - + +
     
    - -
     
    - -
    must(Predicate<S> requirement, +
    must(Predicate<S> requirement, String description)
    -
     
    +
     
    @@ -158,12 +155,6 @@

    must

  • -
    -

    build

    -
    public ModularValidator<S> build()
    -
    -
  • -
  • iHaveSpoken

    public ModularValidator<S> iHaveSpoken()
    diff --git a/docs/apidocs/be/sddevelopment/validation/ModularValidator.html b/docs/apidocs/be/sddevelopment/validation/ModularValidator.html index 104faec..4a94f0e 100644 --- a/docs/apidocs/be/sddevelopment/validation/ModularValidator.html +++ b/docs/apidocs/be/sddevelopment/validation/ModularValidator.html @@ -1,11 +1,11 @@ - + ModularValidator (modular-validators 1.0.0-SNAPSHOT API) - + @@ -125,7 +125,7 @@

    Method Summary

    aValid(Class<S> ignoredClazz)
     
    - +
    evaluate(T toValidate)
     
    @@ -148,7 +148,7 @@

    Method Details

  • evaluate

    -
    public Checked<T> evaluate(T toValidate)
    +
    public Evaluated<T> evaluate(T toValidate)
  • diff --git a/docs/apidocs/be/sddevelopment/validation/Rationale.html b/docs/apidocs/be/sddevelopment/validation/Rationale.html new file mode 100644 index 0000000..00d30ad --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/Rationale.html @@ -0,0 +1,195 @@ + + + + +Rationale (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class Rationale

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.Rationale
    +
    +
    +
    +
    public class Rationale +extends Object
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        emptyRationale

        +
        public static Rationale emptyRationale()
        +
        +
      • +
      • +
        +

        rationaleWithReasons

        +
        public static Rationale rationaleWithReasons(List<Reason> reasons)
        +
        +
      • +
      • +
        +

        details

        +
        public List<Reason> details()
        +
        +
      • +
      • +
        +

        add

        +
        public Rationale add(Reason reason)
        +
        +
      • +
      • +
        +

        isPassing

        +
        public boolean isPassing()
        +
        +
      • +
      • +
        +

        isFailing

        +
        public boolean isFailing()
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/Reason.html b/docs/apidocs/be/sddevelopment/validation/Reason.html index 8a007f7..56b38db 100644 --- a/docs/apidocs/be/sddevelopment/validation/Reason.html +++ b/docs/apidocs/be/sddevelopment/validation/Reason.html @@ -1,11 +1,11 @@ - + Reason (modular-validators 1.0.0-SNAPSHOT API) - + @@ -96,9 +96,9 @@

    Record Class Reason

    public record Reason(String rationale, Evaluation result) extends Record

    Reason class.

    - Represents the evaluation of a single ValidationRule, and will be included in a EvaluationRationale. + Represents the evaluation of a single Constraint, and will be included in a Rationale. Each reason will tell the user whether a particular rule passed or failed, and will include a description (aka "rationale") to explain why a certain result was achieved. - +

    This class is immutable, and provides static factory methods to simplify usage, and increase readability..

    Since:
    @@ -149,6 +149,12 @@

    Method Summary

    Returns a hash code value for this object.
    +
    boolean
    + +
     
    +
    boolean
    + +
     
    static Reason
    passed(String rationale)
     
    @@ -218,6 +224,18 @@

    failed

  • +
    +

    isPassing

    +
    public boolean isPassing()
    +
    +
  • +
  • +
    +

    isFailing

    +
    public boolean isFailing()
    +
    +
  • +
  • toString

    public final String toString()
    diff --git a/docs/apidocs/be/sddevelopment/validation/ValidationRule.ValidationRuleBuilder.html b/docs/apidocs/be/sddevelopment/validation/ValidationRule.ValidationRuleBuilder.html new file mode 100644 index 0000000..01f3860 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/ValidationRule.ValidationRuleBuilder.html @@ -0,0 +1,172 @@ + + + + +ValidationRule.ValidationRuleBuilder (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class ValidationRule.ValidationRuleBuilder<T>

    +
    +
    java.lang.Object +
    be.sddevelopment.validation.Constraint.ValidationRuleBuilder<T>
    +
    +
    +
    +
    Enclosing class:
    +
    ValidationRule<T>
    +
    +
    +
    public static class ValidationRule.ValidationRuleBuilder<T> +extends Object
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/ValidationRule.html b/docs/apidocs/be/sddevelopment/validation/ValidationRule.html index bc39150..b06ccb8 100644 --- a/docs/apidocs/be/sddevelopment/validation/ValidationRule.html +++ b/docs/apidocs/be/sddevelopment/validation/ValidationRule.html @@ -1,11 +1,11 @@ - + ValidationRule (modular-validators 1.0.0-SNAPSHOT API) - + @@ -39,7 +39,7 @@
  • Summary:

    • + +
    • +
      +

      Nested Class Summary

      +
      Nested Classes
      +
      +
      Modifier and Type
      +
      Class
      +
      Description
      +
      static class 
      + +
       
      +
      +
      +
    • @@ -128,32 +143,38 @@

      Constructor Summary

      Method Summary

      -
      +
      Modifier and Type
      Method
      Description
      - - -
      + +
      applyTo(T toTest)
      +
       
      + + +
      Returns the value of the description record component.
      -
      final boolean
      - -
      +
      boolean
      + +
      Indicates whether some other object is "equal to" this one.
      -
      final int
      - -
      +
      int
      + +
      Returns a hash code value for this object.
      - - -
      + + +
      Returns the value of the rule record component.
      + +
      ruleFor(Class<S> ignoredClass)
      +
       
      final String
      @@ -198,22 +219,31 @@

      ValidationRule

      Method Details

      • -
        -

        toString

        -
        public final String toString()
        -
        Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
        +
        +

        ruleFor

        +
        public static <S> +ValidationRule.ValidationRuleBuilder<S> ruleFor(Class<S> ignoredClass)
        +
        +
      • +
      • +
        +

        equals

        +
        public boolean equals(Object o)
        +
        Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
        Specified by:
        -
        toString in class Record
        +
        equals in class Record
        +
        Parameters:
        +
        o - the object with which to compare
        Returns:
        -
        a string representation of this object
        +
        true if this object is the same as the o argument; false otherwise.
      • hashCode

        -
        public final int hashCode()
        +
        public int hashCode()
        Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
        Specified by:
        @@ -224,17 +254,21 @@

        hashCode

      • -
        -

        equals

        -
        public final boolean equals(Object o)
        -
        Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
        +
        +

        applyTo

        +
        public Evaluated<T> applyTo(T toTest)
        +
        +
      • +
      • +
        +

        toString

        +
        public final String toString()
        +
        Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
        Specified by:
        -
        equals in class Record
        -
        Parameters:
        -
        o - the object with which to compare
        +
        toString in class Record
        Returns:
        -
        true if this object is the same as the o argument; false otherwise.
        +
        a string representation of this object
      • diff --git a/docs/apidocs/be/sddevelopment/validation/Validations.html b/docs/apidocs/be/sddevelopment/validation/Validations.html index 661d51b..2b18851 100644 --- a/docs/apidocs/be/sddevelopment/validation/Validations.html +++ b/docs/apidocs/be/sddevelopment/validation/Validations.html @@ -1,11 +1,11 @@ - + Validations (modular-validators 1.0.0-SNAPSHOT API) - + @@ -115,13 +115,16 @@

        Method Summary

        Method
        Description
        static <S> Predicate<S>
        -
        haveNonNullField(Function<S,?> extractor)
        -
        -
        haveNonNullField.
        -
        + +
         
        static <S> Predicate<S>
        -
        haveNullField(Function<S,?> extractor)
        +
        haveNonNullField(Function<S,?> extractor)
        +
        haveNonNullField.
        +
        +
        static <S> Predicate<S>
        +
        haveNullField(Function<S,?> extractor)
        +
        haveNullField.
      @@ -157,6 +160,12 @@

      haveNonNullField

    • +
      +

      haveNonEmpty

      +
      public static <S> Predicate<S> haveNonEmpty(Function<S,String> extractor)
      +
      +
    • +
    • haveNullField

      public static <S> Predicate<S> haveNullField(Function<S,?> extractor)
      diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Checked.html b/docs/apidocs/be/sddevelopment/validation/class-use/Checked.html index 01bb146..4f74cc2 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/Checked.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Checked.html @@ -1,11 +1,11 @@ - + Uses of Class be.sddevelopment.validation.Checked (modular-validators 1.0.0-SNAPSHOT API) - + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Constrainable.html b/docs/apidocs/be/sddevelopment/validation/class-use/Constrainable.html new file mode 100644 index 0000000..8407934 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Constrainable.html @@ -0,0 +1,91 @@ + + + + +Uses of Class be.sddevelopment.validation.Constrainable (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Uses of Class
      be.sddevelopment.validation.Constrainable

      +
      +
      + +
      +
      + +
      +
      + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Constraint.ValidationRuleBuilder.html b/docs/apidocs/be/sddevelopment/validation/class-use/Constraint.ValidationRuleBuilder.html new file mode 100644 index 0000000..e687dbd --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Constraint.ValidationRuleBuilder.html @@ -0,0 +1,86 @@ + + + + +Uses of Class be.sddevelopment.validation.Constraint.ValidationRuleBuilder (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Uses of Class
      be.sddevelopment.validation.Constraint.ValidationRuleBuilder

      +
      +
      + +
      +
      + +
      +
      + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Constraint.html b/docs/apidocs/be/sddevelopment/validation/class-use/Constraint.html new file mode 100644 index 0000000..fed932c --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Constraint.html @@ -0,0 +1,98 @@ + + + + +Uses of Record Class be.sddevelopment.validation.Constraint (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Uses of Record Class
      be.sddevelopment.validation.Constraint

      +
      +
      + +
      +
      + +
      +
      + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Evaluated.html b/docs/apidocs/be/sddevelopment/validation/class-use/Evaluated.html new file mode 100644 index 0000000..a8bdd33 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Evaluated.html @@ -0,0 +1,89 @@ + + + + +Uses of Class be.sddevelopment.validation.Constrainable (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Uses of Class
      be.sddevelopment.validation.Constrainable

      +
      +
      + +
      +
      + +
      +
      + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Evaluation.html b/docs/apidocs/be/sddevelopment/validation/class-use/Evaluation.html index 96d79dd..6bf5939 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/Evaluation.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Evaluation.html @@ -1,11 +1,11 @@ - + Uses of Enum Class be.sddevelopment.validation.Evaluation (modular-validators 1.0.0-SNAPSHOT API) - + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/EvaluationRationale.html b/docs/apidocs/be/sddevelopment/validation/class-use/EvaluationRationale.html index 4e3c99d..b8ac33b 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/EvaluationRationale.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/EvaluationRationale.html @@ -1,11 +1,11 @@ - -Uses of Class be.sddevelopment.validation.EvaluationRationale (modular-validators 1.0.0-SNAPSHOT API) + +Uses of Class be.sddevelopment.validation.Rationale (modular-validators 1.0.0-SNAPSHOT API) - + @@ -49,20 +49,39 @@
      -

      Uses of Class
      be.sddevelopment.validation.EvaluationRationale

      +

      Uses of Class
      be.sddevelopment.validation.Rationale

      • Uses of EvaluationRationale in be.sddevelopment.validation

        + +
        +
        Modifier and Type
        +
        Method
        +
        Description
        + +
        EvaluationRationale.add(Reason reason)
        +
         
        +
        Methods in be.sddevelopment.validation that return types with arguments of type EvaluationRationale
        Modifier and Type
        Method
        Description
        -
        Checked.rationale()
        +
        Evaluated.rationale()
        +
         
        +
        +
        Constructors in be.sddevelopment.validation with parameters of type EvaluationRationale
        +
        +
        Modifier
        +
        Constructor
        +
        Description
        +
         
        +
         
        diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/InvalidObjectException.html b/docs/apidocs/be/sddevelopment/validation/class-use/InvalidObjectException.html new file mode 100644 index 0000000..8ab6fb6 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/InvalidObjectException.html @@ -0,0 +1,83 @@ + + + + +Uses of Class be.sddevelopment.validation.InvalidObjectException (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
        + +
        +
        +
        +

        Uses of Class
        be.sddevelopment.validation.InvalidObjectException

        +
        +
        + +
        +
        + +
        +
        + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/ModularRuleset.ModularValidatorBuilder.html b/docs/apidocs/be/sddevelopment/validation/class-use/ModularRuleset.ModularValidatorBuilder.html new file mode 100644 index 0000000..c907f1c --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/ModularRuleset.ModularValidatorBuilder.html @@ -0,0 +1,93 @@ + + + + +Uses of Class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
        + +
        +
        +
        +

        Uses of Class
        be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder

        +
        +
        + +
        +
        + +
        +
        + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/ModularRuleset.html b/docs/apidocs/be/sddevelopment/validation/class-use/ModularRuleset.html new file mode 100644 index 0000000..e53aa81 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/ModularRuleset.html @@ -0,0 +1,100 @@ + + + + +Uses of Class be.sddevelopment.validation.ModularRuleset (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
        + +
        +
        +
        +

        Uses of Class
        be.sddevelopment.validation.ModularRuleset

        +
        +
        + +
        +
        + +
        +
        + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.ModularValidatorBuilder.html b/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.ModularValidatorBuilder.html index 3934d4a..553d1c5 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.ModularValidatorBuilder.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.ModularValidatorBuilder.html @@ -1,11 +1,11 @@ - -Uses of Class be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder (modular-validators 1.0.0-SNAPSHOT API) + +Uses of Class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder (modular-validators 1.0.0-SNAPSHOT API) - + @@ -49,7 +49,7 @@
        -

        Uses of Class
        be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder

        +

        Uses of Class
        be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder

          diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.html b/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.html index f3e96e2..7edb721 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/ModularValidator.html @@ -1,11 +1,11 @@ - -Uses of Class be.sddevelopment.validation.ModularValidator (modular-validators 1.0.0-SNAPSHOT API) + +Uses of Class be.sddevelopment.validation.ModularRuleset (modular-validators 1.0.0-SNAPSHOT API) - + @@ -49,7 +49,7 @@
          -

          Uses of Class
          be.sddevelopment.validation.ModularValidator

          +

          Uses of Class
          be.sddevelopment.validation.ModularRuleset

            @@ -62,14 +62,11 @@

            Uses of Method

          Description
          -
          ModularValidator.ModularValidatorBuilder.build()
          +
          ModularValidator.ModularValidatorBuilder.done()
           
          -
          ModularValidator.ModularValidatorBuilder.done()
          +
          ModularValidator.ModularValidatorBuilder.iHaveSpoken()
           
          - -
          ModularValidator.ModularValidatorBuilder.iHaveSpoken()
          -
           
    • diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Rationale.html b/docs/apidocs/be/sddevelopment/validation/class-use/Rationale.html new file mode 100644 index 0000000..5d6aed8 --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Rationale.html @@ -0,0 +1,108 @@ + + + + +Uses of Class be.sddevelopment.validation.Rationale (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Uses of Class
      be.sddevelopment.validation.Rationale

      +
      +
      + +
      +
      + +
      +
      + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/Reason.html b/docs/apidocs/be/sddevelopment/validation/class-use/Reason.html index 0fc5eb9..acc2620 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/Reason.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/Reason.html @@ -1,11 +1,11 @@ - + Uses of Record Class be.sddevelopment.validation.Reason (modular-validators 1.0.0-SNAPSHOT API) - + @@ -61,12 +61,15 @@

      Uses of Modifier and Type
      Method
      Description
      -
      -
      Reason.failed(String rationale)
      + +
      Constraint.applyTo(T toTest)
       
      static Reason
      -
      Reason.passed(String rationale)
      +
      Reason.failed(String rationale)
       
      +
      static Reason
      +
      Reason.passed(String rationale)
      +
       
      Methods in be.sddevelopment.validation that return types with arguments of type Reason
      @@ -74,7 +77,7 @@

      Uses of Method

      Description
      -
      EvaluationRationale.details()
      +
      Rationale.details()
       
      Methods in be.sddevelopment.validation with parameters of type Reason
      @@ -82,8 +85,17 @@

      Uses of Modifier and Type
      Method
      Description
      -
      void
      -
      + +
      Rationale.add(Reason reason)
      +
       
      + +
      Method parameters in be.sddevelopment.validation with type arguments of type Reason
      +
      +
      Modifier and Type
      +
      Method
      +
      Description
      +
      static Rationale
      +
      Rationale.rationaleWithReasons(List<Reason> reasons)
       

    diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.ValidationRuleBuilder.html b/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.ValidationRuleBuilder.html new file mode 100644 index 0000000..201282c --- /dev/null +++ b/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.ValidationRuleBuilder.html @@ -0,0 +1,86 @@ + + + + +Uses of Class be.sddevelopment.validation.Constraint.ValidationRuleBuilder (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Uses of Class
    be.sddevelopment.validation.Constraint.ValidationRuleBuilder

    +
    +
    + +
    +
    + +
    +
    + + diff --git a/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.html b/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.html index c98e643..e04ae4d 100644 --- a/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.html +++ b/docs/apidocs/be/sddevelopment/validation/class-use/ValidationRule.html @@ -1,11 +1,11 @@ - -Uses of Record Class be.sddevelopment.validation.ValidationRule (modular-validators 1.0.0-SNAPSHOT API) + +Uses of Record Class be.sddevelopment.validation.Constraint (modular-validators 1.0.0-SNAPSHOT API) - + @@ -49,13 +49,22 @@
    -

    Uses of Record Class
    be.sddevelopment.validation.ValidationRule

    +

    Uses of Record Class
    be.sddevelopment.validation.Constraint

    +
    +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

    +

    All Packages

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    diff --git a/docs/apidocs/index-all.html b/docs/apidocs/index-all.html index 42577a4..d93f674 100644 --- a/docs/apidocs/index-all.html +++ b/docs/apidocs/index-all.html @@ -1,11 +1,11 @@ - + Index (modular-validators 1.0.0-SNAPSHOT API) - + @@ -51,59 +51,83 @@

    Index

    -A B C D E F H I M O P R T V 
    All Classes and Interfaces|All Packages +A B C D E F G H I M O P Q R T V W 
    All Classes and Interfaces|All Packages|Serialized Form

    A

    -
    add(Reason) - Method in class be.sddevelopment.validation.EvaluationRationale
    +
    add(Reason) - Method in class be.sddevelopment.validation.Rationale
     
    -
    aValid(Class<S>) - Static method in class be.sddevelopment.validation.ModularValidator
    +
    applyTo(T) - Method in record class be.sddevelopment.validation.Constraint
    +
     
    +
    assess(T) - Method in class be.sddevelopment.validation.ModularRuleset
    +
     
    +
    aValid(Class<S>) - Static method in class be.sddevelopment.validation.ModularRuleset
     

    B

    be.sddevelopment.validation - package be.sddevelopment.validation
     
    -
    build() - Method in class be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder
    -
     

    C

    -
    Checked<T> - Class in be.sddevelopment.validation
    +
    check(T) - Method in class be.sddevelopment.validation.ModularRuleset
    +
     
    +
    constrain(T) - Static method in class be.sddevelopment.validation.Constrainable
    +
     
    +
    constrain(T) - Method in class be.sddevelopment.validation.ModularRuleset
    +
     
    +
    constrain(T, ModularRuleset<T>) - Static method in class be.sddevelopment.validation.Constrainable
    +
     
    +
    Constrainable<T> - Class in be.sddevelopment.validation
    -
    Checked class.
    +
    Evaluated class.
    +
    Constraint<T> - Record Class in be.sddevelopment.validation
    +
    +
    ValidationRule class.
    +
    +
    Constraint(Predicate<T>, String) - Constructor for record class be.sddevelopment.validation.Constraint
    +
    +
    Creates an instance of a Constraint record class.
    +
    +
    Constraint.ValidationRuleBuilder<T> - Class in be.sddevelopment.validation
    +
     

    D

    -
    description() - Method in record class be.sddevelopment.validation.ValidationRule
    +
    describedAs(String) - Method in class be.sddevelopment.validation.Constraint.ValidationRuleBuilder
    +
     
    +
    description() - Method in record class be.sddevelopment.validation.Constraint
    -
    Returns the value of the description record component.
    +
    Returns the value of the description record component.
    -
    details() - Method in class be.sddevelopment.validation.EvaluationRationale
    +
    details() - Method in class be.sddevelopment.validation.Rationale
    +
     
    +
    done() - Method in class be.sddevelopment.validation.Constraint.ValidationRuleBuilder
     
    -
    done() - Method in class be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder
    +
    done() - Method in class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder
     

    E

    -
    equals(Object) - Method in record class be.sddevelopment.validation.Reason
    +
    emptyRationale() - Static method in class be.sddevelopment.validation.Rationale
    +
     
    +
    emptyRules() - Static method in class be.sddevelopment.validation.ModularRuleset
    +
     
    +
    equals(Object) - Method in record class be.sddevelopment.validation.Constraint
    Indicates whether some other object is "equal to" this one.
    -
    equals(Object) - Method in record class be.sddevelopment.validation.ValidationRule
    +
    equals(Object) - Method in record class be.sddevelopment.validation.Reason
    Indicates whether some other object is "equal to" this one.
    -
    evaluate(T) - Method in class be.sddevelopment.validation.ModularValidator
    +
    errors() - Method in exception class be.sddevelopment.validation.InvalidObjectException
     
    Evaluation - Enum Class in be.sddevelopment.validation
    Evaluation class.
    -
    EvaluationRationale - Class in be.sddevelopment.validation
    -
     
    -
    EvaluationRationale() - Constructor for class be.sddevelopment.validation.EvaluationRationale
    -
     

    F

    @@ -111,17 +135,26 @@

    F

     
    failed(String) - Static method in record class be.sddevelopment.validation.Reason
     
    +
    feedback(String) - Method in class be.sddevelopment.validation.Constrainable
    +
     
    +
    +

    G

    +
    +
    guard() - Method in class be.sddevelopment.validation.Constrainable
    +
     

    H

    -
    hashCode() - Method in record class be.sddevelopment.validation.Reason
    +
    hashCode() - Method in record class be.sddevelopment.validation.Constraint
    Returns a hash code value for this object.
    -
    hashCode() - Method in record class be.sddevelopment.validation.ValidationRule
    +
    hashCode() - Method in record class be.sddevelopment.validation.Reason
    Returns a hash code value for this object.
    +
    haveNonEmpty(Function<S, String>) - Static method in class be.sddevelopment.validation.Validations
    +
     
    haveNonNullField(Function<S, ?>) - Static method in class be.sddevelopment.validation.Validations
    haveNonNullField.
    @@ -133,25 +166,37 @@

    H

    I

    -
    iHaveSpoken() - Method in class be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder
    +
    iHaveSpoken() - Method in class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder
    +
     
    +
    InvalidObjectException - Exception Class in be.sddevelopment.validation
    +
     
    +
    InvalidObjectException(String, Rationale) - Constructor for exception class be.sddevelopment.validation.InvalidObjectException
    +
     
    +
    isFailing() - Method in class be.sddevelopment.validation.Rationale
    +
     
    +
    isFailing() - Method in record class be.sddevelopment.validation.Reason
    +
     
    +
    isPassing() - Method in class be.sddevelopment.validation.Rationale
     
    -
    isValid() - Method in class be.sddevelopment.validation.Checked
    +
    isPassing() - Method in record class be.sddevelopment.validation.Reason
    +
     
    +
    isValid() - Method in class be.sddevelopment.validation.Constrainable
     

    M

    -
    ModularValidator<T> - Class in be.sddevelopment.validation
    +
    ModularRuleset<T> - Class in be.sddevelopment.validation
     
    -
    ModularValidator.ModularValidatorBuilder<S> - Class in be.sddevelopment.validation
    +
    ModularRuleset.ModularValidatorBuilder<S> - Class in be.sddevelopment.validation
     
    -
    must(ValidationRule<S>) - Method in class be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder
    +
    must(Constraint<S>) - Method in class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder
     
    -
    must(Predicate<S>, String) - Method in class be.sddevelopment.validation.ModularValidator.ModularValidatorBuilder
    +
    must(Predicate<S>, String) - Method in class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder
     

    O

    -
    of(T) - Static method in class be.sddevelopment.validation.Checked
    +
    of(T, ModularRuleset<T>) - Static method in class be.sddevelopment.validation.Constrainable
     

    P

    @@ -161,14 +206,23 @@

    P

    passed(String) - Static method in record class be.sddevelopment.validation.Reason
     
    +

    Q

    +
    +
    quickCheck(T) - Method in class be.sddevelopment.validation.ModularRuleset
    +
     
    +

    R

    -
    rationale() - Method in class be.sddevelopment.validation.Checked
    +
    rationale() - Method in class be.sddevelopment.validation.Constrainable
     
    rationale() - Method in record class be.sddevelopment.validation.Reason
    Returns the value of the rationale record component.
    +
    Rationale - Class in be.sddevelopment.validation
    +
     
    +
    rationaleWithReasons(List<Reason>) - Static method in class be.sddevelopment.validation.Rationale
    +
     
    Reason - Record Class in be.sddevelopment.validation
    Reason class.
    @@ -177,36 +231,34 @@

    R

    Creates an instance of a Reason record class.
    +
    requires(Predicate<T>) - Method in class be.sddevelopment.validation.Constraint.ValidationRuleBuilder
    +
     
    result() - Method in record class be.sddevelopment.validation.Reason
    Returns the value of the result record component.
    -
    rule() - Method in record class be.sddevelopment.validation.ValidationRule
    +
    rule() - Method in record class be.sddevelopment.validation.Constraint
    -
    Returns the value of the rule record component.
    +
    Returns the value of the rule record component.
    +
    ruleFor(Class<S>) - Static method in record class be.sddevelopment.validation.Constraint
    +
     

    T

    -
    toString() - Method in record class be.sddevelopment.validation.Reason
    +
    toBuilder() - Method in class be.sddevelopment.validation.ModularRuleset
    +
     
    +
    toString() - Method in record class be.sddevelopment.validation.Constraint
    Returns a string representation of this record class.
    -
    toString() - Method in record class be.sddevelopment.validation.ValidationRule
    +
    toString() - Method in record class be.sddevelopment.validation.Reason
    Returns a string representation of this record class.

    V

    -
    ValidationRule<T> - Record Class in be.sddevelopment.validation
    -
    -
    ValidationRule class.
    -
    -
    ValidationRule(Predicate<T>, String) - Constructor for record class be.sddevelopment.validation.ValidationRule
    -
    -
    Creates an instance of a ValidationRule record class.
    -
    Validations - Class in be.sddevelopment.validation
    Validations class.
    @@ -221,7 +273,12 @@

    V

    the order they are declared.
    -A B C D E F H I M O P R T V 
    All Classes and Interfaces|All Packages +

    W

    +
    +
    withRules(List<Constraint<S>>) - Method in class be.sddevelopment.validation.ModularRuleset.ModularValidatorBuilder
    +
     
    +
    +A B C D E F G H I M O P Q R T V W 
    All Classes and Interfaces|All Packages|Serialized Form

    diff --git a/docs/apidocs/index.html b/docs/apidocs/index.html index b92a33d..9e0244f 100644 --- a/docs/apidocs/index.html +++ b/docs/apidocs/index.html @@ -1,11 +1,11 @@ - + modular-validators 1.0.0-SNAPSHOT API - + diff --git a/docs/apidocs/member-search-index.js b/docs/apidocs/member-search-index.js index f1b2027..7cd9307 100644 --- a/docs/apidocs/member-search-index.js +++ b/docs/apidocs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"be.sddevelopment.validation","c":"EvaluationRationale","l":"add(Reason)","u":"add(be.sddevelopment.validation.Reason)"},{"p":"be.sddevelopment.validation","c":"ModularValidator","l":"aValid(Class)","u":"aValid(java.lang.Class)"},{"p":"be.sddevelopment.validation","c":"ModularValidator.ModularValidatorBuilder","l":"build()"},{"p":"be.sddevelopment.validation","c":"ValidationRule","l":"description()"},{"p":"be.sddevelopment.validation","c":"EvaluationRationale","l":"details()"},{"p":"be.sddevelopment.validation","c":"ModularValidator.ModularValidatorBuilder","l":"done()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"be.sddevelopment.validation","c":"ValidationRule","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"be.sddevelopment.validation","c":"ModularValidator","l":"evaluate(T)"},{"p":"be.sddevelopment.validation","c":"EvaluationRationale","l":"EvaluationRationale()","u":"%3Cinit%3E()"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"FAIL"},{"p":"be.sddevelopment.validation","c":"Reason","l":"failed(String)","u":"failed(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Reason","l":"hashCode()"},{"p":"be.sddevelopment.validation","c":"ValidationRule","l":"hashCode()"},{"p":"be.sddevelopment.validation","c":"Validations","l":"haveNonNullField(Function)","u":"haveNonNullField(java.util.function.Function)"},{"p":"be.sddevelopment.validation","c":"Validations","l":"haveNullField(Function)","u":"haveNullField(java.util.function.Function)"},{"p":"be.sddevelopment.validation","c":"ModularValidator.ModularValidatorBuilder","l":"iHaveSpoken()"},{"p":"be.sddevelopment.validation","c":"Checked","l":"isValid()"},{"p":"be.sddevelopment.validation","c":"ModularValidator.ModularValidatorBuilder","l":"must(Predicate, String)","u":"must(java.util.function.Predicate,java.lang.String)"},{"p":"be.sddevelopment.validation","c":"ModularValidator.ModularValidatorBuilder","l":"must(ValidationRule)","u":"must(be.sddevelopment.validation.ValidationRule)"},{"p":"be.sddevelopment.validation","c":"Checked","l":"of(T)"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"PASS"},{"p":"be.sddevelopment.validation","c":"Reason","l":"passed(String)","u":"passed(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Checked","l":"rationale()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"rationale()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"Reason(String, Evaluation)","u":"%3Cinit%3E(java.lang.String,be.sddevelopment.validation.Evaluation)"},{"p":"be.sddevelopment.validation","c":"Reason","l":"result()"},{"p":"be.sddevelopment.validation","c":"ValidationRule","l":"rule()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"toString()"},{"p":"be.sddevelopment.validation","c":"ValidationRule","l":"toString()"},{"p":"be.sddevelopment.validation","c":"ValidationRule","l":"ValidationRule(Predicate, String)","u":"%3Cinit%3E(java.util.function.Predicate,java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"values()"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"be.sddevelopment.validation","c":"Rationale","l":"add(Reason)","u":"add(be.sddevelopment.validation.Reason)"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"applyTo(T)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"assess(T)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"aValid(Class)","u":"aValid(java.lang.Class)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"check(T)"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"constrain(T)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"constrain(T)"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"constrain(T, ModularRuleset)","u":"constrain(T,be.sddevelopment.validation.ModularRuleset)"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"Constraint(Predicate, String)","u":"%3Cinit%3E(java.util.function.Predicate,java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Constraint.ValidationRuleBuilder","l":"describedAs(String)","u":"describedAs(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"description()"},{"p":"be.sddevelopment.validation","c":"Rationale","l":"details()"},{"p":"be.sddevelopment.validation","c":"Constraint.ValidationRuleBuilder","l":"done()"},{"p":"be.sddevelopment.validation","c":"ModularRuleset.ModularValidatorBuilder","l":"done()"},{"p":"be.sddevelopment.validation","c":"Rationale","l":"emptyRationale()"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"emptyRules()"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"be.sddevelopment.validation","c":"Reason","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"be.sddevelopment.validation","c":"InvalidObjectException","l":"errors()"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"FAIL"},{"p":"be.sddevelopment.validation","c":"Reason","l":"failed(String)","u":"failed(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"feedback(String)","u":"feedback(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"guard()"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"hashCode()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"hashCode()"},{"p":"be.sddevelopment.validation","c":"Validations","l":"haveNonEmpty(Function)","u":"haveNonEmpty(java.util.function.Function)"},{"p":"be.sddevelopment.validation","c":"Validations","l":"haveNonNullField(Function)","u":"haveNonNullField(java.util.function.Function)"},{"p":"be.sddevelopment.validation","c":"Validations","l":"haveNullField(Function)","u":"haveNullField(java.util.function.Function)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset.ModularValidatorBuilder","l":"iHaveSpoken()"},{"p":"be.sddevelopment.validation","c":"InvalidObjectException","l":"InvalidObjectException(String, Rationale)","u":"%3Cinit%3E(java.lang.String,be.sddevelopment.validation.Rationale)"},{"p":"be.sddevelopment.validation","c":"Rationale","l":"isFailing()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"isFailing()"},{"p":"be.sddevelopment.validation","c":"Rationale","l":"isPassing()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"isPassing()"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"isValid()"},{"p":"be.sddevelopment.validation","c":"ModularRuleset.ModularValidatorBuilder","l":"must(Constraint)","u":"must(be.sddevelopment.validation.Constraint)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset.ModularValidatorBuilder","l":"must(Predicate, String)","u":"must(java.util.function.Predicate,java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"of(T, ModularRuleset)","u":"of(T,be.sddevelopment.validation.ModularRuleset)"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"PASS"},{"p":"be.sddevelopment.validation","c":"Reason","l":"passed(String)","u":"passed(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"quickCheck(T)"},{"p":"be.sddevelopment.validation","c":"Constrainable","l":"rationale()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"rationale()"},{"p":"be.sddevelopment.validation","c":"Rationale","l":"rationaleWithReasons(List)","u":"rationaleWithReasons(java.util.List)"},{"p":"be.sddevelopment.validation","c":"Reason","l":"Reason(String, Evaluation)","u":"%3Cinit%3E(java.lang.String,be.sddevelopment.validation.Evaluation)"},{"p":"be.sddevelopment.validation","c":"Constraint.ValidationRuleBuilder","l":"requires(Predicate)","u":"requires(java.util.function.Predicate)"},{"p":"be.sddevelopment.validation","c":"Reason","l":"result()"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"rule()"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"ruleFor(Class)","u":"ruleFor(java.lang.Class)"},{"p":"be.sddevelopment.validation","c":"ModularRuleset","l":"toBuilder()"},{"p":"be.sddevelopment.validation","c":"Constraint","l":"toString()"},{"p":"be.sddevelopment.validation","c":"Reason","l":"toString()"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"be.sddevelopment.validation","c":"Evaluation","l":"values()"},{"p":"be.sddevelopment.validation","c":"ModularRuleset.ModularValidatorBuilder","l":"withRules(List>)","u":"withRules(java.util.List)"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/apidocs/overview-tree.html b/docs/apidocs/overview-tree.html index 883bc77..efaec37 100644 --- a/docs/apidocs/overview-tree.html +++ b/docs/apidocs/overview-tree.html @@ -1,11 +1,11 @@ - + Class Hierarchy (modular-validators 1.0.0-SNAPSHOT API) - + @@ -60,10 +60,20 @@

    Class Hierarchy

    • java.lang.Object
    • @@ -90,8 +100,8 @@

      Record Class Hierarchy

      diff --git a/docs/apidocs/search.html b/docs/apidocs/search.html index 53b1887..0d333c0 100644 --- a/docs/apidocs/search.html +++ b/docs/apidocs/search.html @@ -1,11 +1,11 @@ - + Search (modular-validators 1.0.0-SNAPSHOT API) - + diff --git a/docs/apidocs/serialized-form.html b/docs/apidocs/serialized-form.html new file mode 100644 index 0000000..9b4908a --- /dev/null +++ b/docs/apidocs/serialized-form.html @@ -0,0 +1,90 @@ + + + + +Serialized Form (modular-validators 1.0.0-SNAPSHOT API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Serialized Form

      +
      + +
      + +
      +
      + + diff --git a/docs/apidocs/tag-search-index.js b/docs/apidocs/tag-search-index.js index 0367dae..f38b3cb 100644 --- a/docs/apidocs/tag-search-index.js +++ b/docs/apidocs/tag-search-index.js @@ -1 +1 @@ -tagSearchIndex = [];updateSearchResults(); \ No newline at end of file +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/apidocs/type-search-index.js b/docs/apidocs/type-search-index.js index 23bb515..753e142 100644 --- a/docs/apidocs/type-search-index.js +++ b/docs/apidocs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"be.sddevelopment.validation","l":"Checked"},{"p":"be.sddevelopment.validation","l":"Evaluation"},{"p":"be.sddevelopment.validation","l":"EvaluationRationale"},{"p":"be.sddevelopment.validation","l":"ModularValidator"},{"p":"be.sddevelopment.validation","l":"ModularValidator.ModularValidatorBuilder"},{"p":"be.sddevelopment.validation","l":"Reason"},{"p":"be.sddevelopment.validation","l":"ValidationRule"},{"p":"be.sddevelopment.validation","l":"Validations"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"be.sddevelopment.validation","l":"Constrainable"},{"p":"be.sddevelopment.validation","l":"Constraint"},{"p":"be.sddevelopment.validation","l":"Evaluation"},{"p":"be.sddevelopment.validation","l":"InvalidObjectException"},{"p":"be.sddevelopment.validation","l":"ModularRuleset"},{"p":"be.sddevelopment.validation","l":"ModularRuleset.ModularValidatorBuilder"},{"p":"be.sddevelopment.validation","l":"Rationale"},{"p":"be.sddevelopment.validation","l":"Reason"},{"p":"be.sddevelopment.validation","l":"Constraint.ValidationRuleBuilder"},{"p":"be.sddevelopment.validation","l":"Validations"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/serenity/01f5288b80adbd3af52a8ed68a4a616d3164f750229f80da1ef344382d948835.html b/docs/serenity/01f5288b80adbd3af52a8ed68a4a616d3164f750229f80da1ef344382d948835.html index a3fb200..8601ecd 100644 --- a/docs/serenity/01f5288b80adbd3af52a8ed68a4a616d3164f750229f80da1ef344382d948835.html +++ b/docs/serenity/01f5288b80adbd3af52a8ed68a4a616d3164f750229f80da1ef344382d948835.html @@ -181,7 +181,7 @@ Stories
    - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -197,7 +197,7 @@

    Test Results: All Tests

    - 5 tests + 14 tests | @@ -237,60 +237,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -352,8 +352,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -363,7 +363,7 @@

    Features

    @@ -373,10 +373,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -386,7 +386,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -398,8 +444,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -409,7 +478,7 @@

    Features

    @@ -419,7 +488,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -469,25 +538,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -498,8 +663,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -510,20 +675,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -589,7 +766,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -685,7 +862,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -768,7 +945,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -836,9 +1013,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -846,57 +1033,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.html b/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.html index 38c0bf9..daaba85 100644 --- a/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.html +++ b/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.html @@ -156,7 +156,7 @@ Stories
  • - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 08:27
    diff --git a/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.json b/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.json index 441dafb..1298976 100644 --- a/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.json +++ b/docs/serenity/021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.json @@ -1 +1 @@ -{"name":"givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]/[method:givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]","testCaseName":"be.sddevelopment.validation.CheckedTest","methodName":"givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered","userStory":{"id":"be.sddevelopment.validation.CheckedTest","storyName":"CheckedTest","displayName":"CheckedTest","storyClassName":"be.sddevelopment.validation.CheckedTest","path":"be.sddevelopment.validation.CheckedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"CheckedTest","description":"CheckedTest"}],"narrative":"","type":"feature"},"title":"Given checked with data when applying rule its evaluation is remembered","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/CheckedTest","type":"feature","displayName":"CheckedTest"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-23T11:09:36.087196878Z[Etc/UTC]","duration":4,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file +{"name":"givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]/[method:givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]","testCaseName":"be.sddevelopment.validation.CheckedTest","methodName":"givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered","userStory":{"id":"be.sddevelopment.validation.CheckedTest","storyName":"CheckedTest","displayName":"CheckedTest","storyClassName":"be.sddevelopment.validation.CheckedTest","path":"be.sddevelopment.validation.CheckedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"CheckedTest","description":"CheckedTest"}],"narrative":"","type":"feature"},"title":"Given checked with data when applying rule its evaluation is remembered","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/CheckedTest","type":"feature","displayName":"Checked test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T08:27:16.204649648Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.html b/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.html index 2edf963..0195d94 100644 --- a/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.html +++ b/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.html @@ -156,7 +156,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 08:27
    @@ -241,7 +241,7 @@

    SUCCESS - 0.03s + 0.02s diff --git a/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.json b/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.json index 4917114..9892813 100644 --- a/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.json +++ b/docs/serenity/056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.json @@ -1 +1 @@ -{"name":"givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]/[method:givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]","testCaseName":"be.sddevelopment.validation.CheckedTest","methodName":"givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid","userStory":{"id":"be.sddevelopment.validation.CheckedTest","storyName":"CheckedTest","displayName":"CheckedTest","storyClassName":"be.sddevelopment.validation.CheckedTest","path":"be.sddevelopment.validation.CheckedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"CheckedTest","description":"CheckedTest"}],"narrative":"","type":"feature"},"title":"Given checked with data and invalid data when applying rule it is evaluated as invalid","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/CheckedTest","type":"feature","displayName":"CheckedTest"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-23T11:09:36.022999836Z[Etc/UTC]","duration":27,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file +{"name":"givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]/[method:givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]","testCaseName":"be.sddevelopment.validation.CheckedTest","methodName":"givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid","userStory":{"id":"be.sddevelopment.validation.CheckedTest","storyName":"CheckedTest","displayName":"CheckedTest","storyClassName":"be.sddevelopment.validation.CheckedTest","path":"be.sddevelopment.validation.CheckedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"CheckedTest","description":"CheckedTest"}],"narrative":"","type":"feature"},"title":"Given checked with data and invalid data when applying rule it is evaluated as invalid","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/CheckedTest","type":"feature","displayName":"Checked test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T08:27:16.148041917Z[Etc/UTC]","duration":16,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.html b/docs/serenity/064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.html new file mode 100644 index 0000000..e0eefd0 --- /dev/null +++ b/docs/serenity/064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.html @@ -0,0 +1,297 @@ + + + + + Utility classes should not be instantiatable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validations test + > Utility classes should not be instantiatable + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Validations Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Utility classes should not be instantiatable + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0.01s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.json b/docs/serenity/064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.json new file mode 100644 index 0000000..31f86d2 --- /dev/null +++ b/docs/serenity/064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.json @@ -0,0 +1 @@ +{"name":"utilityClassesShouldNotBeInstantiatable()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]/[method:utilityClassesShouldNotBeInstantiatable()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]","testCaseName":"be.sddevelopment.validation.ValidationsTest","methodName":"utilityClassesShouldNotBeInstantiatable","userStory":{"id":"be.sddevelopment.validation.ValidationsTest","storyName":"ValidationsTest","displayName":"ValidationsTest","storyClassName":"be.sddevelopment.validation.ValidationsTest","path":"be.sddevelopment.validation.ValidationsTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationsTest","description":"ValidationsTest"}],"narrative":"","type":"feature"},"title":"Utility classes should not be instantiatable","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidationsTest","type":"feature","displayName":"ValidationsTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.314467512Z[Etc/UTC]","duration":5,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/07afe5692088619215fc9bd4ed18aa880b945b17ad44106ba1662d164a45e01c.html b/docs/serenity/07afe5692088619215fc9bd4ed18aa880b945b17ad44106ba1662d164a45e01c.html new file mode 100644 index 0000000..114f2ed --- /dev/null +++ b/docs/serenity/07afe5692088619215fc9bd4ed18aa880b945b17ad44106ba1662d164a45e01c.html @@ -0,0 +1,890 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Story + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 2 tests + + | + + +

    Note that results include + data-driven scenarios containing tests , + which may also contain results other than tests .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 2
    + Total Number of Test Cases + 2
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 63ms
    + Fastest Test + 4ms
    + Slowest + Test + 10ms
    + Average + Execution Time + 7ms
    + Total + Execution Time + 14ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 22100% + + +
    +
    +
    +
    +
    + Evaluated usages + 11100% + + +
    +
    +
    +
    +
    + Validator usage + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + EvaluatedUsages + Checked should allow for fluent usage when using it as a guard given invalid object + 009:48:44010ms SUCCESS +
    + ValidatorUsage + Modular validators must cover basic usage given simple date based validation logic + 009:48:44004ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/14489696baea3d0c4b832027fed52c52dad8f6480f124fc76b4ce887e6ac83b1.html b/docs/serenity/14489696baea3d0c4b832027fed52c52dad8f6480f124fc76b4ce887e6ac83b1.html new file mode 100644 index 0000000..7fa7a55 --- /dev/null +++ b/docs/serenity/14489696baea3d0c4b832027fed52c52dad8f6480f124fc76b4ce887e6ac83b1.html @@ -0,0 +1,885 @@ + + + + + + + Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + + +
    +
    +
    + + Home > Requirements + + > Be + > Sddevelopment + > Validation + > Validator dogfood test + + + > Checked usages + + +
    +
    +
    +
    + + + +
    + + Report generated 26-12-2023 08:27 +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +

    Feature: Checked usages

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + + +
    + +
    + +
    + +
    +
    +
    +

    Scenarios

    + + +

    +

    + + + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + +
    + +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1 + Total + Duration + 13ms
    + Total Number of Test Cases + 1 + Fastest Test + 13ms
    + Number of Manual Test Cases + 0 + Slowest + Test + 13ms
    + Tests Started + Dec 26, 2023 08:27:15 + Average + Execution Time + 13ms
    + Tests + Finished + Dec 26, 2023 08:27:15 + Total + Execution Time + 13ms
    +
    +
    + +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioContextStepsStartedTotal DurationResult
    + CheckedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 008:27:15013ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/14b730b994cf9ba1363a90c10429730902e52edf3ba9deab3dfb31692e11e51d.html b/docs/serenity/14b730b994cf9ba1363a90c10429730902e52edf3ba9deab3dfb31692e11e51d.html index 6cce6ff..63e3311 100644 --- a/docs/serenity/14b730b994cf9ba1363a90c10429730902e52edf3ba9deab3dfb31692e11e51d.html +++ b/docs/serenity/14b730b994cf9ba1363a90c10429730902e52edf3ba9deab3dfb31692e11e51d.html @@ -182,7 +182,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -198,7 +198,7 @@

    Test Results: All Tests

    - 5 tests + 14 tests | @@ -238,60 +238,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -353,8 +353,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -364,7 +364,7 @@

    Features

    @@ -374,10 +374,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -387,7 +387,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -399,8 +445,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -410,7 +479,7 @@

    Features

    @@ -420,7 +489,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -470,25 +539,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -499,8 +664,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -511,20 +676,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -590,7 +767,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -686,7 +863,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -769,7 +946,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -837,9 +1014,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -847,57 +1034,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html b/docs/serenity/1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html index 3956aee..314b551 100644 --- a/docs/serenity/1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html +++ b/docs/serenity/1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Checked test","type":"feature","href":"1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]}]; + var requirementsTree = [{"text":"Checked test","type":"feature","href":"1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]}]; $('#tree').treeview({ data: requirementsTree, @@ -234,7 +234,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 08:27
    @@ -298,6 +298,39 @@

    Feature Coverage By Scenario

    Overview

    + + + + +
    + + + Scenario: Guard has no effect given valid source data + + + + + + + + + +
    + + + + + + + + +
    +
    @@ -331,6 +364,39 @@

    Overview

    + + + + + Scenario: Guard throws a validation exception given invalid source data + + + + + + + + + + + +
    + + + + + + + + +
    + + @@ -373,11 +439,37 @@

    Overview

    Scenarios

    - +

    +
    + +
    +
    +
    +
    +
    +
    @@ -404,6 +496,32 @@

    Scenarios

    + +
    @@ -474,22 +592,22 @@

    Key Statistics

    Number of Scenarios - 2 + 4 Total Duration - 68ms + 86ms Total Number of Test Cases - 2 + 4 Fastest Test - 4ms + 3ms @@ -500,30 +618,30 @@

    Key Statistics

    Slowest Test - 27ms + 16ms Tests Started - Dec 23, 2023 11:09:36 + Dec 26, 2023 08:27:16 Average Execution Time - 15ms + 6ms Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 08:27:16 Total Execution Time - 31ms + 25ms @@ -545,6 +663,21 @@

    Automated Tests

    + + + CheckedTest + + + Guard has no effect given valid source data + + + + 0 + 08:27:16 + 003ms + SUCCESS + + CheckedTest @@ -555,8 +688,23 @@

    Automated Tests

    0 - 11:09:36 - 027ms + 08:27:16 + 016ms + SUCCESS + + + + + CheckedTest + + + Guard throws a validation exception given invalid source data + + + + 0 + 08:27:16 + 003ms SUCCESS @@ -570,8 +718,8 @@

    Automated Tests

    0 - 11:09:36 - 004ms + 08:27:16 + 003ms SUCCESS @@ -630,7 +778,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 4}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -725,7 +873,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 4}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -821,7 +969,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [2,0,0,0,0,0,0,0], + data: [4,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -904,7 +1052,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['2','0','0','0','0','0','0','0'], + data: ['4','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.html b/docs/serenity/27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.html new file mode 100644 index 0000000..1f9c4bc --- /dev/null +++ b/docs/serenity/27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.html @@ -0,0 +1,297 @@ + + + + + Invalid object exception must contain all errors given multiple errors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Invalid object exception test + > Invalid object exception must contain all errors given multiple errors + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Invalid Object Exception Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Invalid object exception must contain all errors given multiple errors + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0.02s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.json b/docs/serenity/27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.json new file mode 100644 index 0000000..285ebdf --- /dev/null +++ b/docs/serenity/27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.json @@ -0,0 +1 @@ +{"name":"invalidObjectExceptionMustContainAllErrors_givenMultipleErrors()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.InvalidObjectExceptionTest]/[method:invalidObjectExceptionMustContainAllErrors_givenMultipleErrors()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.InvalidObjectExceptionTest]","testCaseName":"be.sddevelopment.validation.InvalidObjectExceptionTest","methodName":"invalidObjectExceptionMustContainAllErrors_givenMultipleErrors","userStory":{"id":"be.sddevelopment.validation.InvalidObjectExceptionTest","storyName":"InvalidObjectExceptionTest","displayName":"InvalidObjectExceptionTest","storyClassName":"be.sddevelopment.validation.InvalidObjectExceptionTest","path":"be.sddevelopment.validation.InvalidObjectExceptionTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"InvalidObjectExceptionTest","description":"InvalidObjectExceptionTest"}],"narrative":"","type":"feature"},"title":"Invalid object exception must contain all errors given multiple errors","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/InvalidObjectExceptionTest","type":"feature","displayName":"InvalidObjectExceptionTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:43.495178250Z[Etc/UTC]","duration":18,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.html b/docs/serenity/290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.html new file mode 100644 index 0000000..b72addb --- /dev/null +++ b/docs/serenity/290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.html @@ -0,0 +1,297 @@ + + + + + Rules are chainable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validation rule test + > Rules are chainable + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Validation Rule Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Rules are chainable + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.json b/docs/serenity/290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.json new file mode 100644 index 0000000..abb9612 --- /dev/null +++ b/docs/serenity/290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.json @@ -0,0 +1 @@ +{"name":"rules_areChainable()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]/[method:rules_areChainable()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]","testCaseName":"be.sddevelopment.validation.ValidationRuleTest","methodName":"rules_areChainable","userStory":{"id":"be.sddevelopment.validation.ValidationRuleTest","storyName":"ValidationRuleTest","displayName":"ValidationRuleTest","storyClassName":"be.sddevelopment.validation.ValidationRuleTest","path":"be.sddevelopment.validation.ValidationRuleTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationRuleTest","description":"ValidationRuleTest"}],"narrative":"","type":"feature"},"title":"Rules are chainable","tags":[{"name":"be/sddevelopment/validation/ValidationRuleTest","type":"feature","displayName":"ValidationRuleTest"},{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:43.271723922Z[Etc/UTC]","duration":0,"projectKey":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.html b/docs/serenity/291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.html new file mode 100644 index 0000000..3e59e4a --- /dev/null +++ b/docs/serenity/291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.html @@ -0,0 +1,299 @@ + + + + + Checked should allow for fluent usage when using it as a guard given invalid object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validator dogfood test + + > Checked usages + > Checked should allow for fluent usage when using it as a guard given invalid object + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 08:27 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Checked Usages +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Checked should allow for fluent usage when using it as a guard given invalid object + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0.01s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.json b/docs/serenity/291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.json new file mode 100644 index 0000000..453fe68 --- /dev/null +++ b/docs/serenity/291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.json @@ -0,0 +1 @@ +{"name":"checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidatorDogfoodTest]/[nested-class:CheckedUsages]/[method:checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidatorDogfoodTest]/[nested-class:CheckedUsages]","testCaseName":"be.sddevelopment.validation.ValidatorDogfoodTest.CheckedUsages","methodName":"checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject","userStory":{"id":"be.sddevelopment.validation.ValidatorDogfoodTest.CheckedUsages","storyName":"CheckedUsages","displayName":"CheckedUsages","storyClassName":"be.sddevelopment.validation.ValidatorDogfoodTest$CheckedUsages","path":"be.sddevelopment.validation.ValidatorDogfoodTest.CheckedUsages","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidatorDogfoodTest","description":"ValidatorDogfoodTest"},{"name":"CheckedUsages","description":"CheckedUsages"}],"narrative":"","type":"feature"},"title":"Checked should allow for fluent usage when using it as a guard given invalid object","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidatorDogfoodTest/CheckedUsages","type":"feature","displayName":"Checked usages"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/ValidatorDogfoodTest","type":"story","displayName":"Validator dogfood test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T08:27:15.985190829Z[Etc/UTC]","duration":13,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/2a4631d87648e59c428d4cf0e9247f9d286e4679f436ca2ce872e931eb4dfd58.html b/docs/serenity/2a4631d87648e59c428d4cf0e9247f9d286e4679f436ca2ce872e931eb4dfd58.html index 6336ac2..6ea3cf5 100644 --- a/docs/serenity/2a4631d87648e59c428d4cf0e9247f9d286e4679f436ca2ce872e931eb4dfd58.html +++ b/docs/serenity/2a4631d87648e59c428d4cf0e9247f9d286e4679f436ca2ce872e931eb4dfd58.html @@ -146,7 +146,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -190,8 +190,8 @@

    Test Outcomes for Stories

    validation - 5 - 5 + 14 + 14 100% @@ -210,11 +210,11 @@

    Test Outcomes for Stories

    Test Outcomes for Stories style="width: 0%; background-color:#cbddea;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -240,9 +240,9 @@

    Test Outcomes for Stories

    style="width: 0%; background-color:#cccdc7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -254,9 +254,9 @@

    Test Outcomes for Stories

    style="width: 0%; background-color:#e3c281;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -268,9 +268,9 @@

    Test Outcomes for Stories

    style="width: 0%; background-color:#f9c7a7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -282,9 +282,9 @@

    Test Outcomes for Stories

    style="width: 0%; background-color:#fd938e;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -296,9 +296,9 @@

    Test Outcomes for Stories

    style="width: 0%; background-color:#fab186;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -310,9 +310,148 @@

    Test Outcomes for Stories

    style="width: 0%; background-color:#fab0f3;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) + - Failing tests: 0 (0%) + - Tests with errors: 0 (0%) + - Compromised tests 0 (0%) + - Aborted tests: 0 (0%) + - Pending tests: 0 (0%) + - Ignored or skipped tests: 0 (0%)"> +
    +
    + + + + + + + + ValidatorDogfoodTest + 2 + 2 + 100% + + + 1 + + + + + + + + + - + - + - + - + - + - + - + - + - +
    +
    100%
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -200,7 +200,7 @@

    Duration Under 1 Second

    - 5 tests + 14 tests | @@ -240,60 +240,60 @@

    Key Statistics

    Number of Scenarios 514
    Total Number of Test Cases 514
    Tests Started Dec 23, 2023 11:09:35Dec 26, 2023 09:48:43
    Tests Finished Dec 23, 2023 11:09:36Dec 26, 2023 09:48:44
    Total Duration 844ms1s
    Fastest Test 3ms0ms
    Slowest Test 109ms18ms
    Average Execution Time 29ms4ms
    Total Execution Time 146ms58ms
    @@ -355,8 +355,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -366,7 +366,7 @@

    Features

    @@ -376,10 +376,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -389,7 +389,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -401,8 +447,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -412,7 +481,7 @@

    Features

    @@ -422,7 +491,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -472,25 +541,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -501,8 +666,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -513,20 +678,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -592,7 +769,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -688,7 +865,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -771,7 +948,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -839,9 +1016,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -849,57 +1036,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/2ec28a0c7bb9e7b60c6362d39250c507ded3dc231cdbc313af77e4dfdd52f0a4.html b/docs/serenity/2ec28a0c7bb9e7b60c6362d39250c507ded3dc231cdbc313af77e4dfdd52f0a4.html index f01ce8f..b920f92 100644 --- a/docs/serenity/2ec28a0c7bb9e7b60c6362d39250c507ded3dc231cdbc313af77e4dfdd52f0a4.html +++ b/docs/serenity/2ec28a0c7bb9e7b60c6362d39250c507ded3dc231cdbc313af77e4dfdd52f0a4.html @@ -185,7 +185,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 08:27:19
    @@ -201,7 +201,7 @@

    Feature: Be/Sddevelopment/Validation/Checkedtest
    - 2 tests + 4 tests | @@ -241,60 +241,60 @@

    Key Statistics

    Number of Scenarios - 2 + 4 Total Number of Test Cases - 2 + 4 Tests Started - Dec 23, 2023 11:09:36 + Dec 26, 2023 08:27:16 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 08:27:16 Total Duration - 68ms + 86ms Fastest Test - 4ms + 3ms Slowest Test - 27ms + 16ms Average Execution Time - 15ms + 6ms Total Execution Time - 31ms + 25ms @@ -356,8 +356,8 @@

    Features

    Sddevelopment - 2 - 2 + 4 + 4 100% @@ -367,7 +367,7 @@

    Features

    @@ -379,8 +379,8 @@

    Features

    Checked test - 2 - 2 + 4 + 4 100% @@ -390,7 +390,7 @@

    Features

    @@ -425,6 +425,18 @@

    Automated Tests

    + + + CheckedTest + + Guard has no effect given valid source data + + 0 + 08:27:16 + 003ms + SUCCESS + + CheckedTest @@ -432,8 +444,20 @@

    Automated Tests

    Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 027ms + 08:27:16 + 016ms + SUCCESS + + + + + CheckedTest + + Guard throws a validation exception given invalid source data + + 0 + 08:27:16 + 003ms SUCCESS @@ -444,8 +468,8 @@

    Automated Tests

    Given checked with data when applying rule its evaluation is remembered 0 - 11:09:36 - 004ms + 08:27:16 + 003ms SUCCESS @@ -511,7 +535,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 4}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -607,7 +631,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [2,0,0,0,0,0,0,0], + data: [4,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -690,7 +714,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['2','0','0','0','0','0','0','0'], + data: ['4','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -771,7 +795,7 @@

    Manual Tests

    datasets: [ { label: ['Passing Tests'], - data: [2,2], + data: [4,4], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { diff --git a/docs/serenity/2f59e8157d5fc8baf5983148a97a9df18c25db727517dc205259e223e1dbd2c0.html b/docs/serenity/2f59e8157d5fc8baf5983148a97a9df18c25db727517dc205259e223e1dbd2c0.html index d637da9..82a1dcb 100644 --- a/docs/serenity/2f59e8157d5fc8baf5983148a97a9df18c25db727517dc205259e223e1dbd2c0.html +++ b/docs/serenity/2f59e8157d5fc8baf5983148a97a9df18c25db727517dc205259e223e1dbd2c0.html @@ -182,7 +182,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -198,7 +198,7 @@

    Test Results: All Tests

    - 5 tests + 14 tests | @@ -238,60 +238,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -353,8 +353,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -364,7 +364,7 @@

    Features

    @@ -374,10 +374,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -387,7 +387,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -399,8 +445,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -410,7 +479,7 @@

    Features

    @@ -420,7 +489,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -470,25 +539,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -499,8 +664,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -511,20 +676,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -590,7 +767,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -686,7 +863,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -769,7 +946,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -837,9 +1014,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -847,57 +1034,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/365b16e3ee6f0291b840b9644231fff9e30b16504a367cdf3c6abe85187cb1e6.html b/docs/serenity/365b16e3ee6f0291b840b9644231fff9e30b16504a367cdf3c6abe85187cb1e6.html index 7ac4025..8f72ae9 100644 --- a/docs/serenity/365b16e3ee6f0291b840b9644231fff9e30b16504a367cdf3c6abe85187cb1e6.html +++ b/docs/serenity/365b16e3ee6f0291b840b9644231fff9e30b16504a367cdf3c6abe85187cb1e6.html @@ -182,7 +182,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -198,7 +198,7 @@

    Test Results: All Tests

    - 5 tests + 14 tests | @@ -238,60 +238,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -353,8 +353,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -364,7 +364,7 @@

    Features

    @@ -374,10 +374,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -387,7 +387,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -399,8 +445,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -410,7 +479,7 @@

    Features

    @@ -420,7 +489,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -470,25 +539,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -499,8 +664,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -511,20 +676,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -590,7 +767,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -686,7 +863,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -769,7 +946,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -837,9 +1014,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -847,57 +1034,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html b/docs/serenity/37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html new file mode 100644 index 0000000..07cd9e8 --- /dev/null +++ b/docs/serenity/37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html @@ -0,0 +1,1106 @@ + + + + + + + Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + + +
    +
    +
    + + Home > Requirements + + > Be + > Sddevelopment + > Validation + + + > Evaluated test + + +
    +
    +
    +
    + + + +
    + + Report generated 26-12-2023 09:48 +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +

    Feature: Evaluated test

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + + +
    + +
    + +
    + +
    +
    +
    +

    Scenarios

    + + +

    +

    + + +
    + +
    +
    +
    +
    +
    + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + +
    + +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 4 + Total + Duration + 76ms
    + Total Number of Test Cases + 4 + Fastest Test + 3ms
    + Number of Manual Test Cases + 0 + Slowest + Test + 5ms
    + Tests Started + Dec 26, 2023 09:48:44 + Average + Execution Time + 3ms
    + Tests + Finished + Dec 26, 2023 09:48:44 + Total + Execution Time + 14ms
    +
    +
    + +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioContextStepsStartedTotal DurationResult
    + EvaluatedTest + + Guard has no effect given valid source data + + 009:48:44003ms SUCCESS +
    + EvaluatedTest + + Given checked with data and invalid data when applying rule it is evaluated as invalid + + 009:48:44005ms SUCCESS +
    + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 009:48:44003ms SUCCESS +
    + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 009:48:44003ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.html b/docs/serenity/453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.html new file mode 100644 index 0000000..016a6ef --- /dev/null +++ b/docs/serenity/453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.html @@ -0,0 +1,297 @@ + + + + + A validation rule can be build and used in a fluent way + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validation rule test + > A validation rule can be build and used in a fluent way + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Validation Rule Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + A validation rule can be build and used in a fluent way + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.json b/docs/serenity/453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.json new file mode 100644 index 0000000..b7f82a3 --- /dev/null +++ b/docs/serenity/453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.json @@ -0,0 +1 @@ +{"name":"aValidationRule_canBeBuildAndUsed_inAFluentWay()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]/[method:aValidationRule_canBeBuildAndUsed_inAFluentWay()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]","testCaseName":"be.sddevelopment.validation.ValidationRuleTest","methodName":"aValidationRule_canBeBuildAndUsed_inAFluentWay","userStory":{"id":"be.sddevelopment.validation.ValidationRuleTest","storyName":"ValidationRuleTest","displayName":"ValidationRuleTest","storyClassName":"be.sddevelopment.validation.ValidationRuleTest","path":"be.sddevelopment.validation.ValidationRuleTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationRuleTest","description":"ValidationRuleTest"}],"narrative":"","type":"feature"},"title":"A validation rule can be build and used in a fluent way","tags":[{"name":"be/sddevelopment/validation/ValidationRuleTest","type":"feature","displayName":"ValidationRuleTest"},{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:43.256898498Z[Etc/UTC]","duration":0,"projectKey":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/489c97245257a7668d76d3bd6be11f12bb85fa1988d8e3f668dcdf4fbc1eb3c5.html b/docs/serenity/489c97245257a7668d76d3bd6be11f12bb85fa1988d8e3f668dcdf4fbc1eb3c5.html index ae82d8e..e63780d 100644 --- a/docs/serenity/489c97245257a7668d76d3bd6be11f12bb85fa1988d8e3f668dcdf4fbc1eb3c5.html +++ b/docs/serenity/489c97245257a7668d76d3bd6be11f12bb85fa1988d8e3f668dcdf4fbc1eb3c5.html @@ -182,7 +182,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -198,7 +198,7 @@

    Test Results: All Tests

    - 2 tests + 3 tests | @@ -238,33 +238,33 @@

    Key Statistics

    Number of Scenarios - 2 + 3 Total Number of Test Cases - 2 + 3 Tests Started - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 28ms + 52ms @@ -277,21 +277,21 @@

    Key Statistics

    Slowest Test - 3ms + 5ms Average Execution Time - 3ms + 4ms Total Execution Time - 6ms + 12ms @@ -353,8 +353,8 @@

    Features

    Sddevelopment - 2 - 2 + 3 + 3 100% @@ -364,7 +364,7 @@

    Features

    @@ -376,8 +376,8 @@

    Features

    Validations test - 2 - 2 + 3 + 3 100% @@ -387,7 +387,7 @@

    Features

    @@ -422,6 +422,18 @@

    Automated Tests

    + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms + SUCCESS + + ValidationsTest @@ -429,8 +441,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -441,7 +453,7 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS @@ -508,7 +520,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 3}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -604,7 +616,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [2,0,0,0,0,0,0,0], + data: [3,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -687,7 +699,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['2','0','0','0','0','0','0','0'], + data: ['3','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -768,7 +780,7 @@

    Manual Tests

    datasets: [ { label: ['Passing Tests'], - data: [2,2], + data: [3,3], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { diff --git a/docs/serenity/4aab2bc4c6ac65428a7bfd419b9eeafb533eeb2867b839c39376bb2ff1a74b65.html b/docs/serenity/4aab2bc4c6ac65428a7bfd419b9eeafb533eeb2867b839c39376bb2ff1a74b65.html new file mode 100644 index 0000000..e09381c --- /dev/null +++ b/docs/serenity/4aab2bc4c6ac65428a7bfd419b9eeafb533eeb2867b839c39376bb2ff1a74b65.html @@ -0,0 +1,893 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Story + > Be/Sddevelopment/Validation/Validatordogfoodtest > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Story: Be/Sddevelopment/Validation/Validatordogfoodtest > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 2 tests + + | + + +

    Note that results include + data-driven scenarios containing tests , + which may also contain results other than tests .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 2
    + Total Number of Test Cases + 2
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 63ms
    + Fastest Test + 4ms
    + Slowest + Test + 10ms
    + Average + Execution Time + 7ms
    + Total + Execution Time + 14ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 22100% + + +
    +
    +
    +
    +
    + Evaluated usages + 11100% + + +
    +
    +
    +
    +
    + Validator usage + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + EvaluatedUsages + Checked should allow for fluent usage when using it as a guard given invalid object + 009:48:44010ms SUCCESS +
    + ValidatorUsage + Modular validators must cover basic usage given simple date based validation logic + 009:48:44004ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.html b/docs/serenity/4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.html new file mode 100644 index 0000000..2ce5845 --- /dev/null +++ b/docs/serenity/4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.html @@ -0,0 +1,297 @@ + + + + + Given two identical rules they are considered equal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validation rule test + > Given two identical rules they are considered equal + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Validation Rule Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Given two identical rules they are considered equal + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.json b/docs/serenity/4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.json new file mode 100644 index 0000000..8ccc46d --- /dev/null +++ b/docs/serenity/4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.json @@ -0,0 +1 @@ +{"name":"givenTwoIdenticalRules_theyAreConsideredEqual()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]/[method:givenTwoIdenticalRules_theyAreConsideredEqual()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]","testCaseName":"be.sddevelopment.validation.ValidationRuleTest","methodName":"givenTwoIdenticalRules_theyAreConsideredEqual","userStory":{"id":"be.sddevelopment.validation.ValidationRuleTest","storyName":"ValidationRuleTest","displayName":"ValidationRuleTest","storyClassName":"be.sddevelopment.validation.ValidationRuleTest","path":"be.sddevelopment.validation.ValidationRuleTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationRuleTest","description":"ValidationRuleTest"}],"narrative":"","type":"feature"},"title":"Given two identical rules they are considered equal","tags":[{"name":"be/sddevelopment/validation/ValidationRuleTest","type":"feature","displayName":"ValidationRuleTest"},{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:43.160033161Z[Etc/UTC]","duration":0,"projectKey":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.html b/docs/serenity/4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.html new file mode 100644 index 0000000..0118c7a --- /dev/null +++ b/docs/serenity/4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.html @@ -0,0 +1,297 @@ + + + + + Guard has no effect given valid source data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Evaluated test + > Guard has no effect given valid source data + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Evaluated Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Guard has no effect given valid source data + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.json b/docs/serenity/4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.json new file mode 100644 index 0000000..83b1e20 --- /dev/null +++ b/docs/serenity/4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.json @@ -0,0 +1 @@ +{"name":"guard_hasNoEffect_givenValidSourceData()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]/[method:guard_hasNoEffect_givenValidSourceData()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]","testCaseName":"be.sddevelopment.validation.EvaluatedTest","methodName":"guard_hasNoEffect_givenValidSourceData","userStory":{"id":"be.sddevelopment.validation.EvaluatedTest","storyName":"EvaluatedTest","displayName":"EvaluatedTest","storyClassName":"be.sddevelopment.validation.EvaluatedTest","path":"be.sddevelopment.validation.EvaluatedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"EvaluatedTest","description":"EvaluatedTest"}],"narrative":"","type":"feature"},"title":"Guard has no effect given valid source data","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/EvaluatedTest","type":"feature","displayName":"EvaluatedTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.185886094Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/4ef986a70299b40c923de025c5b029c02120dba38406d59268b70c318d9820ed.html b/docs/serenity/4ef986a70299b40c923de025c5b029c02120dba38406d59268b70c318d9820ed.html new file mode 100644 index 0000000..519398f --- /dev/null +++ b/docs/serenity/4ef986a70299b40c923de025c5b029c02120dba38406d59268b70c318d9820ed.html @@ -0,0 +1,852 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Feature + > Be/Sddevelopment/Validation/Validatordogfoodtest/Evaluatedusages > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Feature: Be/Sddevelopment/Validation/Validatordogfoodtest/Evaluatedusages > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 10ms
    + Fastest Test + 10ms
    + Slowest + Test + 10ms
    + Average + Execution Time + 10ms
    + Total + Execution Time + 10ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Evaluated usages + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + EvaluatedUsages + Checked should allow for fluent usage when using it as a guard given invalid object + 009:48:44010ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/4efe47e573381580abd01618b5aa9b8193c72020dfc759cb4278c35ae60d40f6.html b/docs/serenity/4efe47e573381580abd01618b5aa9b8193c72020dfc759cb4278c35ae60d40f6.html new file mode 100644 index 0000000..9c28350 --- /dev/null +++ b/docs/serenity/4efe47e573381580abd01618b5aa9b8193c72020dfc759cb4278c35ae60d40f6.html @@ -0,0 +1,888 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Feature + > Be/Sddevelopment/Validation/Evaluatedtest > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Feature: Be/Sddevelopment/Validation/Evaluatedtest > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 4 tests + + | + + +

    Note that results include + data-driven scenarios containing tests , + which may also contain results other than tests .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 4
    + Total Number of Test Cases + 4
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 76ms
    + Fastest Test + 3ms
    + Slowest + Test + 5ms
    + Average + Execution Time + 3ms
    + Total + Execution Time + 14ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 44100% + + +
    +
    +
    +
    +
    + Evaluated test + 44100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + EvaluatedTest + Guard has no effect given valid source data + 009:48:44003ms SUCCESS +
    + EvaluatedTest + Given checked with data and invalid data when applying rule it is evaluated as invalid + 009:48:44005ms SUCCESS +
    + EvaluatedTest + Guard throws a validation exception given invalid source data + 009:48:44003ms SUCCESS +
    + EvaluatedTest + Given checked with data when applying rule its evaluation is remembered + 009:48:44003ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html b/docs/serenity/4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html new file mode 100644 index 0000000..310d6f2 --- /dev/null +++ b/docs/serenity/4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html @@ -0,0 +1,885 @@ + + + + + + + Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + + +
    +
    +
    + + Home > Requirements + + > Be + > Sddevelopment + > Validation + > Validator dogfood test + + + > Validator usage + + +
    +
    +
    +
    + + + +
    + + Report generated 26-12-2023 09:48 +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +

    Feature: Validator usage

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + + +
    + +
    + +
    + +
    +
    +
    +

    Scenarios

    + + +

    +

    + + + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + +
    + +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1 + Total + Duration + 4ms
    + Total Number of Test Cases + 1 + Fastest Test + 4ms
    + Number of Manual Test Cases + 0 + Slowest + Test + 4ms
    + Tests Started + Dec 26, 2023 09:48:44 + Average + Execution Time + 4ms
    + Tests + Finished + Dec 26, 2023 09:48:44 + Total + Execution Time + 4ms
    +
    +
    + +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioContextStepsStartedTotal DurationResult
    + ValidatorUsage + + Modular validators must cover basic usage given simple date based validation logic + + 009:48:44004ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.html b/docs/serenity/560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.html new file mode 100644 index 0000000..2396b33 --- /dev/null +++ b/docs/serenity/560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.html @@ -0,0 +1,297 @@ + + + + + Given two identical rules their hashcodes are identical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validation rule test + > Given two identical rules their hashcodes are identical + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Validation Rule Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Given two identical rules their hashcodes are identical + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.json b/docs/serenity/560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.json new file mode 100644 index 0000000..be367b3 --- /dev/null +++ b/docs/serenity/560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.json @@ -0,0 +1 @@ +{"name":"givenTwoIdenticalRules_theirHashcodesAreIdentical()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]/[method:givenTwoIdenticalRules_theirHashcodesAreIdentical()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationRuleTest]","testCaseName":"be.sddevelopment.validation.ValidationRuleTest","methodName":"givenTwoIdenticalRules_theirHashcodesAreIdentical","userStory":{"id":"be.sddevelopment.validation.ValidationRuleTest","storyName":"ValidationRuleTest","displayName":"ValidationRuleTest","storyClassName":"be.sddevelopment.validation.ValidationRuleTest","path":"be.sddevelopment.validation.ValidationRuleTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationRuleTest","description":"ValidationRuleTest"}],"narrative":"","type":"feature"},"title":"Given two identical rules their hashcodes are identical","tags":[{"name":"be/sddevelopment/validation/ValidationRuleTest","type":"feature","displayName":"ValidationRuleTest"},{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:43.312647181Z[Etc/UTC]","duration":0,"projectKey":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/576946480b52ad056d6f5bddf874399c83582ecf90963cc074a14c70580e7d9f.html b/docs/serenity/576946480b52ad056d6f5bddf874399c83582ecf90963cc074a14c70580e7d9f.html index 1906396..4340608 100644 --- a/docs/serenity/576946480b52ad056d6f5bddf874399c83582ecf90963cc074a14c70580e7d9f.html +++ b/docs/serenity/576946480b52ad056d6f5bddf874399c83582ecf90963cc074a14c70580e7d9f.html @@ -146,7 +146,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:46
    @@ -190,8 +190,8 @@

    Test Outcomes for Features

    sddevelopment - 5 - 5 + 14 + 14 100% @@ -210,11 +210,11 @@

    Test Outcomes for Features

    Test Outcomes for Features

    style="width: 0%; background-color:#cbddea;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -240,9 +240,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#cccdc7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -254,9 +254,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#e3c281;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -268,9 +268,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#f9c7a7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -282,9 +282,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fd938e;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -296,9 +296,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fab186;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -310,9 +310,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fab0f3;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -328,7 +328,146 @@

    Test Outcomes for Features

    - ValidatorDogfoodTest + EvaluatedTest + 4 + 4 + 100% + + + 1 + + + + + + + + + + +
    +
    100%
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + ValidatorUsage 1 1 100% @@ -467,9 +606,9 @@

    Test Outcomes for Features

    - CheckedTest - 2 - 2 + EvaluatedUsages + 1 + 1 100% @@ -488,11 +627,11 @@

    Test Outcomes for Features

    Test Outcomes for Features style="width: 0%; background-color:#cbddea;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -518,9 +657,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#cccdc7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -532,9 +671,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#e3c281;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -546,9 +685,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#f9c7a7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -560,9 +699,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fd938e;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -574,9 +713,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fab186;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -588,9 +727,287 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fab0f3;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="1" + title=" - Total tests: 1 + - Passing tests: 1 (100%) + - Failing tests: 0 (0%) + - Tests with errors: 0 (0%) + - Compromised tests 0 (0%) + - Aborted tests: 0 (0%) + - Pending tests: 0 (0%) + - Ignored or skipped tests: 0 (0%)"> +
    +
    + + + + + + + + ValidationRuleTest + 4 + 4 + 100% + + + 1 + + + + + + + + + + +
    +
    100%
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + InvalidObjectExceptionTest + 1 + 1 + 100% + + + 1 + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - +
    +
    100%
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Test Outcomes for Features
    ValidationsTest2233 100% @@ -627,11 +1044,11 @@

    Test Outcomes for Features

    Test Outcomes for Features style="width: 0%; background-color:#cbddea;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -657,9 +1074,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#cccdc7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -671,9 +1088,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#e3c281;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -685,9 +1102,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#f9c7a7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -699,9 +1116,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fd938e;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -713,9 +1130,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fab186;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -727,9 +1144,9 @@

    Test Outcomes for Features

    style="width: 0%; background-color:#fab0f3;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="2" - title=" - Total tests: 2 - - Passing tests: 2 (100%) + aria-valuemax="3" + title=" - Total tests: 3 + - Passing tests: 3 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) diff --git a/docs/serenity/58adb946478d1f31a9198140fdbb586fe1707a05ead641db7ea775c53b9ab384.html b/docs/serenity/58adb946478d1f31a9198140fdbb586fe1707a05ead641db7ea775c53b9ab384.html new file mode 100644 index 0000000..9819559 --- /dev/null +++ b/docs/serenity/58adb946478d1f31a9198140fdbb586fe1707a05ead641db7ea775c53b9ab384.html @@ -0,0 +1,849 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Feature + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 08:27:18 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 08:27:15
    + Tests + Finished + Dec 26, 2023 08:27:15
    + Total + Duration + 13ms
    + Fastest Test + 13ms
    + Slowest + Test + 13ms
    + Average + Execution Time + 13ms
    + Total + Execution Time + 13ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Checked usages + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + CheckedUsages + Checked should allow for fluent usage when using it as a guard given invalid object + 008:27:15013ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/67373383ad29f4fc1896f6256e6db07bda261ef5df443fb2e53adb87e1926cb8.html b/docs/serenity/67373383ad29f4fc1896f6256e6db07bda261ef5df443fb2e53adb87e1926cb8.html new file mode 100644 index 0000000..329f6aa --- /dev/null +++ b/docs/serenity/67373383ad29f4fc1896f6256e6db07bda261ef5df443fb2e53adb87e1926cb8.html @@ -0,0 +1,849 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Feature + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 09:48:43
    + Tests + Finished + Dec 26, 2023 09:48:43
    + Total + Duration + 18ms
    + Fastest Test + 18ms
    + Slowest + Test + 18ms
    + Average + Execution Time + 18ms
    + Total + Execution Time + 18ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Invalid object exception test + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + InvalidObjectExceptionTest + Invalid object exception must contain all errors given multiple errors + 009:48:43018ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/698f8602eacd14d6b7c4ba6c0283d67c415e18ef25ae6f3e89d519b6bb850c77.html b/docs/serenity/698f8602eacd14d6b7c4ba6c0283d67c415e18ef25ae6f3e89d519b6bb850c77.html new file mode 100644 index 0000000..2d44cf5 --- /dev/null +++ b/docs/serenity/698f8602eacd14d6b7c4ba6c0283d67c415e18ef25ae6f3e89d519b6bb850c77.html @@ -0,0 +1,852 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Feature + > Be/Sddevelopment/Validation/Validatordogfoodtest/Checkedusages > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 08:27:18 +
    +
    +
    +
    +
    +
    +
    + +

    Feature: Be/Sddevelopment/Validation/Validatordogfoodtest/Checkedusages > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 08:27:15
    + Tests + Finished + Dec 26, 2023 08:27:15
    + Total + Duration + 13ms
    + Fastest Test + 13ms
    + Slowest + Test + 13ms
    + Average + Execution Time + 13ms
    + Total + Execution Time + 13ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Checked usages + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + CheckedUsages + Checked should allow for fluent usage when using it as a guard given invalid object + 008:27:15013ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/6ae6c6b045da05370ed82bae6131d470a5b527764fc5eaf1892cb80bd2670661.html b/docs/serenity/6ae6c6b045da05370ed82bae6131d470a5b527764fc5eaf1892cb80bd2670661.html index 151b5c0..0f13b1d 100644 --- a/docs/serenity/6ae6c6b045da05370ed82bae6131d470a5b527764fc5eaf1892cb80bd2670661.html +++ b/docs/serenity/6ae6c6b045da05370ed82bae6131d470a5b527764fc5eaf1892cb80bd2670661.html @@ -182,7 +182,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -198,7 +198,7 @@

    Test Results: All Tests

    - 5 tests + 14 tests | @@ -238,60 +238,60 @@

    Key Statistics

    Number of Scenarios 514
    Total Number of Test Cases 514
    Tests Started Dec 23, 2023 11:09:35Dec 26, 2023 09:48:43
    Tests Finished Dec 23, 2023 11:09:36Dec 26, 2023 09:48:44
    Total Duration 844ms1s
    Fastest Test 3ms0ms
    Slowest Test 109ms18ms
    Average Execution Time 29ms4ms
    Total Execution Time 146ms58ms
    @@ -353,8 +353,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -364,7 +364,7 @@

    Features

    @@ -374,10 +374,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -387,7 +387,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -399,8 +445,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -410,7 +479,7 @@

    Features

    @@ -420,7 +489,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -470,25 +539,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -499,8 +664,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -511,20 +676,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -590,7 +767,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -686,7 +863,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -769,7 +946,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -837,9 +1014,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -847,57 +1034,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html b/docs/serenity/6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html index d3ebbf0..3deeafa 100644 --- a/docs/serenity/6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html +++ b/docs/serenity/6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html @@ -4,7 +4,7 @@ - Features + Stories @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Validator dogfood test","type":"feature","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}]; + var requirementsTree = [{"text":"Validator dogfood test","type":"story","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[{"text":"Evaluated usages","type":"feature","href":"8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validator usage","type":"feature","href":"4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 features\u003c/span\u003e "]}]; $('#tree').treeview({ data: requirementsTree, @@ -227,14 +227,14 @@
  • Capabilities
  • -
  • - Features -
  • - Stories + Features +
  • +
  • + Stories
  • - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    @@ -251,7 +251,7 @@
    -

    Feature: Validator dogfood test

    +

    Story: Validator dogfood test

    @@ -294,82 +294,80 @@

    Feature Coverage By Scenario

    -
    -
    -
    -

    Scenarios

    - - -

    -

    - - - +

    Requirements Overview

    + +
    + + +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 2
    + Total Number of Test Cases + 2
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 63ms
    + Fastest Test + 4ms
    + Slowest + Test + 10ms
    + Average + Execution Time + 7ms
    + Total + Execution Time + 14ms
    +
    +
    +
    @@ -415,22 +413,22 @@

    Key Statistics

    Number of Scenarios - 1 + 2 Total Duration - 109ms + 63ms Total Number of Test Cases - 1 + 2 Fastest Test - 109ms + 4ms @@ -441,30 +439,30 @@

    Key Statistics

    Slowest Test - 109ms + 10ms Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:44 Average Execution Time - 109ms + 7ms Tests Finished - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:44 Total Execution Time - 109ms + 14ms @@ -488,16 +486,31 @@

    Automated Tests

    - ValidatorDogfoodTest + EvaluatedUsages + + + Checked should allow for fluent usage when using it as a guard given invalid object + + + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -542,21 +555,21 @@

    Manual Tests

    // Options define for display value on top of bars const outcomeDetailsReports = [ - { title: 'Passing Test Cases', link: "411b74f398ca839c53c1ea6fd95689b230c575ce05c365ecf2a939e4f111fe59.html" }, - { title: 'Pending Test Cases', link: "0e9af3ab10a8f02b6adb78f0325a7668a66f6ce8a57e9ef8468bc51f63ec6a12.html" }, - { title: 'Ignored Test Cases', link: "7456d11424cae951ea5f6f0625a5b6b92559504ed7373a900006f11aa3b72d2e.html" }, - { title: 'Skipped Test Cases', link: "dae15892f3554896325a838277b8de7792e83c8314f2a588ad676235af15c086.html" }, - { title: 'Aborted Test Cases', link: "f5ddc6fed7215930c39806c18a1c6bbf80bff4982abc31dd982504403c40d57e.html"}, - { title: 'Failed Test Cases', link: "961f6cad0f45cc39165f30949f02bf0b5cbccb47efbb6493252d8a221bf4e1cb.html" }, - { title: 'Broken Test Cases', link: "d28ed8b8e467c3f2ff9cd2971ffc7fb21c27b0751ad83196ad404b70fa1a3ac3.html" }, - { title: 'Compromised Test Cases', link: "0fc49fa290d762b4f7be9391c599a6f45fc66a7be516b2c79b1fc0b7cc0b0240.html" }, + { title: 'Passing Test Cases', link: "07afe5692088619215fc9bd4ed18aa880b945b17ad44106ba1662d164a45e01c.html" }, + { title: 'Pending Test Cases', link: "bee9585b5f5f5be85be5feec107d4f05b91b49e73bd7fd6ac73b1811b58b5551.html" }, + { title: 'Ignored Test Cases', link: "3b8051ec75cf4fc0f40354b1cd3e9dc72fcb66879a81809a783588a61f5cbb36.html" }, + { title: 'Skipped Test Cases', link: "02930c4d6295bc131119beb39b28e8d90ad5097e51ac48a18fc5d8e73da9d2bd.html" }, + { title: 'Aborted Test Cases', link: "451b6105f142708cb54bf63706e1df4b3f244ff8b974947228faa72c964d78ac.html"}, + { title: 'Failed Test Cases', link: "cc43760ece093acc943b38e227551db862a2cb6a2fdf38bf410b38938fcb9af9.html" }, + { title: 'Broken Test Cases', link: "4e62b0a34ceaab5e0352b3697f54e98a7c547939588720738eb0cdcb32665ea8.html" }, + { title: 'Compromised Test Cases', link: "3396be9acc3eff921d526479aa6683acfa1bf81860f5e3b7880bfb7205ba61cf.html" }, ] const outcomeData = { labels: ['Passing Test Cases', 'Pending Test Cases', 'Ignored Test Cases', 'Skipped Test Cases', 'Aborted Test Cases', 'Failed Test Cases', 'Broken Test Cases', 'Compromised Test Cases','Undefined Test Cases'], datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 1}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -636,14 +649,14 @@

    Manual Tests

    // Options define for display value on top of bars const requirementsOutcomeDetailsReports = [ - { title: 'Passing Test Cases', link: "411b74f398ca839c53c1ea6fd95689b230c575ce05c365ecf2a939e4f111fe59.html" }, - { title: 'Pending Test Cases', link: "0e9af3ab10a8f02b6adb78f0325a7668a66f6ce8a57e9ef8468bc51f63ec6a12.html" }, - { title: 'Ignored Test Cases', link: "7456d11424cae951ea5f6f0625a5b6b92559504ed7373a900006f11aa3b72d2e.html" }, - { title: 'Skipped Test Cases', link: "dae15892f3554896325a838277b8de7792e83c8314f2a588ad676235af15c086.html" }, - { title: 'Aborted Test Cases', link: "f5ddc6fed7215930c39806c18a1c6bbf80bff4982abc31dd982504403c40d57e.html"}, - { title: 'Failed Test Cases', link: "961f6cad0f45cc39165f30949f02bf0b5cbccb47efbb6493252d8a221bf4e1cb.html" }, - { title: 'Broken Test Cases', link: "d28ed8b8e467c3f2ff9cd2971ffc7fb21c27b0751ad83196ad404b70fa1a3ac3.html" }, - { title: 'Compromised Test Cases', link: "0fc49fa290d762b4f7be9391c599a6f45fc66a7be516b2c79b1fc0b7cc0b0240.html" }, + { title: 'Passing Test Cases', link: "07afe5692088619215fc9bd4ed18aa880b945b17ad44106ba1662d164a45e01c.html" }, + { title: 'Pending Test Cases', link: "bee9585b5f5f5be85be5feec107d4f05b91b49e73bd7fd6ac73b1811b58b5551.html" }, + { title: 'Ignored Test Cases', link: "3b8051ec75cf4fc0f40354b1cd3e9dc72fcb66879a81809a783588a61f5cbb36.html" }, + { title: 'Skipped Test Cases', link: "02930c4d6295bc131119beb39b28e8d90ad5097e51ac48a18fc5d8e73da9d2bd.html" }, + { title: 'Aborted Test Cases', link: "451b6105f142708cb54bf63706e1df4b3f244ff8b974947228faa72c964d78ac.html"}, + { title: 'Failed Test Cases', link: "cc43760ece093acc943b38e227551db862a2cb6a2fdf38bf410b38938fcb9af9.html" }, + { title: 'Broken Test Cases', link: "4e62b0a34ceaab5e0352b3697f54e98a7c547939588720738eb0cdcb32665ea8.html" }, + { title: 'Compromised Test Cases', link: "3396be9acc3eff921d526479aa6683acfa1bf81860f5e3b7880bfb7205ba61cf.html" }, { title: 'Undefined Test Cases', link: "" }, ] const requirementsOutcomeData = { @@ -651,7 +664,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 1}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -733,21 +746,21 @@

    Manual Tests

    // Options define for display value on top of bars const severityDetailsReports = [ - { title: 'Passing Scenarios', link: "411b74f398ca839c53c1ea6fd95689b230c575ce05c365ecf2a939e4f111fe59.html" }, - { title: 'Pending Scenarios', link: "0e9af3ab10a8f02b6adb78f0325a7668a66f6ce8a57e9ef8468bc51f63ec6a12.html" }, - { title: 'Ignored Scenarios', link: "7456d11424cae951ea5f6f0625a5b6b92559504ed7373a900006f11aa3b72d2e.html" }, - { title: 'Skipped Scenarios', link: "dae15892f3554896325a838277b8de7792e83c8314f2a588ad676235af15c086.html" }, - { title: 'Aborted Scenarios', link: "f5ddc6fed7215930c39806c18a1c6bbf80bff4982abc31dd982504403c40d57e.html"}, - { title: 'Failed Scenarios', link: "961f6cad0f45cc39165f30949f02bf0b5cbccb47efbb6493252d8a221bf4e1cb.html" }, - { title: 'Broken Scenarios', link: "d28ed8b8e467c3f2ff9cd2971ffc7fb21c27b0751ad83196ad404b70fa1a3ac3.html" }, - { title: 'Compromised Scenarios', link: "0fc49fa290d762b4f7be9391c599a6f45fc66a7be516b2c79b1fc0b7cc0b0240.html" }, + { title: 'Passing Scenarios', link: "07afe5692088619215fc9bd4ed18aa880b945b17ad44106ba1662d164a45e01c.html" }, + { title: 'Pending Scenarios', link: "bee9585b5f5f5be85be5feec107d4f05b91b49e73bd7fd6ac73b1811b58b5551.html" }, + { title: 'Ignored Scenarios', link: "3b8051ec75cf4fc0f40354b1cd3e9dc72fcb66879a81809a783588a61f5cbb36.html" }, + { title: 'Skipped Scenarios', link: "02930c4d6295bc131119beb39b28e8d90ad5097e51ac48a18fc5d8e73da9d2bd.html" }, + { title: 'Aborted Scenarios', link: "451b6105f142708cb54bf63706e1df4b3f244ff8b974947228faa72c964d78ac.html"}, + { title: 'Failed Scenarios', link: "cc43760ece093acc943b38e227551db862a2cb6a2fdf38bf410b38938fcb9af9.html" }, + { title: 'Broken Scenarios', link: "4e62b0a34ceaab5e0352b3697f54e98a7c547939588720738eb0cdcb32665ea8.html" }, + { title: 'Compromised Scenarios', link: "3396be9acc3eff921d526479aa6683acfa1bf81860f5e3b7880bfb7205ba61cf.html" }, ] const severityData = { labels: ['Passing', 'Pending', 'Ignored', 'Skipped', 'Aborted', 'Failed', 'Broken', 'Compromised'], datasets: [ { label: 'Automated', - data: [1,0,0,0,0,0,0,0], + data: [2,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -811,14 +824,14 @@

    Manual Tests

    // Options define for display value on top of bars const durationDetailsReports = [ - {title: "Under 1 second", link: "073e353aa758d1b4871a402cebd4b9d797c8e7ee437d2fb48a8db238bd6528d2.html"}, - {title: "1 to 10 seconds", link: "40702be917bba7c84f5c723b8152b0618d88c5416d0f16a3dc1acce5f1c6a4e9.html"}, - {title: "10 to 30 seconds", link: "f824ab657e1f7f4accc0676618c99803321d101a1fe4b3fc040e8d5233cf02b9.html"}, - {title: "30 to 60 seconds", link: "70fd63c1733227528970bfb30e3132638110d365d32bebd438044746a702eaca.html"}, - {title: "1 to 2 minutes", link: "a0eea7efb856845a8d5809bb7f712a0ac49db32e574632c99e37c78190faba68.html"}, - {title: "2 to 5 minutes", link: "b942602d27f143941af76db076bc16786b62540bb5007f8a349b28321bd71843.html"}, - {title: "5 to 10 minutes", link: "57c833bd159b3e5e3c993c65f1df9b435477f919f99249c8da6f3d429444991c.html"}, - {title: "10 minutes or over", link: "c4979d490b9dee7d07582484b1d55f5070a1fe1ea3a8bd8d943a4f281e1825bd.html"}, + {title: "Under 1 second", link: "4aab2bc4c6ac65428a7bfd419b9eeafb533eeb2867b839c39376bb2ff1a74b65.html"}, + {title: "1 to 10 seconds", link: "984e6e431cc5d1cebf0d7bb8c8a5811a2c9d3b64072d3423c646035bed5dc6ab.html"}, + {title: "10 to 30 seconds", link: "16ce355aa130dce673767e2000bbde0d22c96cc456a42d9b11c046122205a30b.html"}, + {title: "30 to 60 seconds", link: "9ea171989864b0699512d473feef7f3edddbdfe7ec0f917c3deb701dbfec8066.html"}, + {title: "1 to 2 minutes", link: "0d24f6a82de72b4f1d3115673d22fcc21103cf7cddb70c961964ce398e399e94.html"}, + {title: "2 to 5 minutes", link: "7f5335529e16028bd0ec5c703cbf3196e1f473e20bfc6bb6df644ee3688fc7b5.html"}, + {title: "5 to 10 minutes", link: "31385e2a639bcd0e9392dc72e385c0fb775a331b4f906c2d8cab586cc89ad67f.html"}, + {title: "10 minutes or over", link: "5afe9b9a3a097deeccdb7dda4eb9740954d4d78d835097ec1c665e2163b1bf30.html"}, ] // The Severity bar chart const durationChartCtx = document.getElementById('durationChart'); @@ -830,7 +843,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['1','0','0','0','0','0','0','0'], + data: ['2','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html b/docs/serenity/73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html index 87bd337..1eff015 100644 --- a/docs/serenity/73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html +++ b/docs/serenity/73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Checked test","type":"feature","href":"1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"feature","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 features\u003c/span\u003e "]}]; + var requirementsTree = [{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Evaluated test","type":"feature","href":"37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]},{"text":"Invalid object exception test","type":"feature","href":"798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validation rule test","type":"feature","href":"f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e3 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"story","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[{"text":"Evaluated usages","type":"feature","href":"8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validator usage","type":"feature","href":"4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e5 features\u003c/span\u003e "]}]; $('#tree').treeview({ data: requirementsTree, @@ -233,7 +233,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    @@ -307,60 +307,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -412,22 +412,22 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Duration - 844ms + 1s Total Number of Test Cases - 5 + 14 Fastest Test - 3ms + 0ms @@ -438,30 +438,30 @@

    Key Statistics

    Slowest Test - 109ms + 18ms Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Average Execution Time - 29ms + 4ms Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Execution Time - 146ms + 58ms @@ -485,31 +485,151 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + + Guard throws a validation exception given invalid source data + + + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + + Given checked with data when applying rule its evaluation is remembered + + + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + + Invalid object exception must contain all errors given multiple errors + + + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + + Given two identical rules they are considered equal + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + A validation rule can be build and used in a fluent way + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + Rules are chainable + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + Given two identical rules their hashcodes are identical + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + + Utility classes should not be instantiatable + + + + 0 + 09:48:44 + 005ms SUCCESS @@ -523,8 +643,8 @@

    Automated Tests

    0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -538,23 +658,38 @@

    Automated Tests

    0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages - Modular validators must cover basic usage given simple date based validation logic + Checked should allow for fluent usage when using it as a guard given invalid object 0 - 11:09:35 - 109ms + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage + + + Modular validators must cover basic usage given simple date based validation logic + + + + 0 + 09:48:44 + 004ms SUCCESS @@ -613,7 +748,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -708,7 +843,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -804,7 +939,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -887,7 +1022,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/77f67511a68d37a567fff20babbf37a06546ea5d6982897bb4ad548a7dc36a6a.html b/docs/serenity/77f67511a68d37a567fff20babbf37a06546ea5d6982897bb4ad548a7dc36a6a.html index 32a8186..3aa18d8 100644 --- a/docs/serenity/77f67511a68d37a567fff20babbf37a06546ea5d6982897bb4ad548a7dc36a6a.html +++ b/docs/serenity/77f67511a68d37a567fff20babbf37a06546ea5d6982897bb4ad548a7dc36a6a.html @@ -185,7 +185,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -201,7 +201,7 @@

    Story: Be/Sddevelopment/Validation > Duration Und
    - 5 tests + 14 tests | @@ -241,60 +241,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -356,8 +356,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -367,7 +367,7 @@

    Features

    @@ -377,10 +377,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -390,7 +390,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -402,8 +448,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -413,7 +482,7 @@

    Features

    @@ -423,7 +492,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -473,25 +542,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -502,8 +667,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -514,20 +679,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -593,7 +770,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -689,7 +866,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -772,7 +949,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -840,9 +1017,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -850,57 +1037,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html b/docs/serenity/798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html new file mode 100644 index 0000000..fa66e60 --- /dev/null +++ b/docs/serenity/798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html @@ -0,0 +1,884 @@ + + + + + + + Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + + +
    +
    +
    + + Home > Requirements + + > Be + > Sddevelopment + > Validation + + + > Invalid object exception test + + +
    +
    +
    +
    + + + +
    + + Report generated 26-12-2023 09:48 +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +

    Feature: Invalid object exception test

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    +

    Scenarios

    + + +

    +

    + + + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + +
    + +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1 + Total + Duration + 18ms
    + Total Number of Test Cases + 1 + Fastest Test + 18ms
    + Number of Manual Test Cases + 0 + Slowest + Test + 18ms
    + Tests Started + Dec 26, 2023 09:48:43 + Average + Execution Time + 18ms
    + Tests + Finished + Dec 26, 2023 09:48:43 + Total + Execution Time + 18ms
    +
    +
    + +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioContextStepsStartedTotal DurationResult
    + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 009:48:43018ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/7ca3aac86b4a3785e624e0f6a1b14d1c5eaea8bfc79afaab5491caf9e43beaf2.html b/docs/serenity/7ca3aac86b4a3785e624e0f6a1b14d1c5eaea8bfc79afaab5491caf9e43beaf2.html index 315345c..52fef9b 100644 --- a/docs/serenity/7ca3aac86b4a3785e624e0f6a1b14d1c5eaea8bfc79afaab5491caf9e43beaf2.html +++ b/docs/serenity/7ca3aac86b4a3785e624e0f6a1b14d1c5eaea8bfc79afaab5491caf9e43beaf2.html @@ -185,7 +185,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -201,7 +201,7 @@

    Duration: Under 1 Second > Duration Under 1 Secon
    - 5 tests + 14 tests | @@ -241,60 +241,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -356,8 +356,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -367,7 +367,7 @@

    Features

    @@ -377,10 +377,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -390,7 +390,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -402,8 +448,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -413,7 +482,7 @@

    Features

    @@ -423,7 +492,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -473,25 +542,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -502,8 +667,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -514,20 +679,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -593,7 +770,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -689,7 +866,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -772,7 +949,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -840,9 +1017,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -850,57 +1037,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/7ea0a5e2d679b9deeda9910ae4a9bcd3a281e0d908303a9e16e486103e98880c.html b/docs/serenity/7ea0a5e2d679b9deeda9910ae4a9bcd3a281e0d908303a9e16e486103e98880c.html index 8379617..0d6dbf2 100644 --- a/docs/serenity/7ea0a5e2d679b9deeda9910ae4a9bcd3a281e0d908303a9e16e486103e98880c.html +++ b/docs/serenity/7ea0a5e2d679b9deeda9910ae4a9bcd3a281e0d908303a9e16e486103e98880c.html @@ -146,7 +146,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:46
    @@ -190,8 +190,8 @@

    Test Outcomes for Capabilities

    be - 5 - 5 + 14 + 14 100% @@ -210,11 +210,11 @@

    Test Outcomes for Capabilities

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#cbddea;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -240,9 +240,9 @@

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#cccdc7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -254,9 +254,9 @@

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#e3c281;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -268,9 +268,9 @@

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#f9c7a7;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -282,9 +282,9 @@

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#fd938e;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -296,9 +296,9 @@

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#fab186;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) @@ -310,9 +310,9 @@

    Test Outcomes for Capabilities

    style="width: 0%; background-color:#fab0f3;" aria-valuenow="0" aria-valuemin="0" - aria-valuemax="5" - title=" - Total tests: 5 - - Passing tests: 5 (100%) + aria-valuemax="14" + title=" - Total tests: 14 + - Passing tests: 14 (100%) - Failing tests: 0 (0%) - Tests with errors: 0 (0%) - Compromised tests 0 (0%) diff --git a/docs/serenity/8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html b/docs/serenity/8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html new file mode 100644 index 0000000..67b50ae --- /dev/null +++ b/docs/serenity/8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html @@ -0,0 +1,885 @@ + + + + + + + Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + + +
    +
    +
    + + Home > Requirements + + > Be + > Sddevelopment + > Validation + > Validator dogfood test + + + > Evaluated usages + + +
    +
    +
    +
    + + + +
    + + Report generated 26-12-2023 09:48 +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +

    Feature: Evaluated usages

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + + +
    + +
    + +
    + +
    +
    +
    +

    Scenarios

    + + +

    +

    + + + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + +
    + +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1 + Total + Duration + 10ms
    + Total Number of Test Cases + 1 + Fastest Test + 10ms
    + Number of Manual Test Cases + 0 + Slowest + Test + 10ms
    + Tests Started + Dec 26, 2023 09:48:44 + Average + Execution Time + 10ms
    + Tests + Finished + Dec 26, 2023 09:48:44 + Total + Execution Time + 10ms
    +
    +
    + +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioContextStepsStartedTotal DurationResult
    + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 009:48:44010ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.html b/docs/serenity/9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.html new file mode 100644 index 0000000..610d1c2 --- /dev/null +++ b/docs/serenity/9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.html @@ -0,0 +1,297 @@ + + + + + Given checked with data and invalid data when applying rule it is evaluated as invalid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Evaluated test + > Given checked with data and invalid data when applying rule it is evaluated as invalid + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Evaluated Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Given checked with data and invalid data when applying rule it is evaluated as invalid + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0.01s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.json b/docs/serenity/9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.json new file mode 100644 index 0000000..2e1abdc --- /dev/null +++ b/docs/serenity/9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.json @@ -0,0 +1 @@ +{"name":"givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]/[method:givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]","testCaseName":"be.sddevelopment.validation.EvaluatedTest","methodName":"givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid","userStory":{"id":"be.sddevelopment.validation.EvaluatedTest","storyName":"EvaluatedTest","displayName":"EvaluatedTest","storyClassName":"be.sddevelopment.validation.EvaluatedTest","path":"be.sddevelopment.validation.EvaluatedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"EvaluatedTest","description":"EvaluatedTest"}],"narrative":"","type":"feature"},"title":"Given checked with data and invalid data when applying rule it is evaluated as invalid","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/EvaluatedTest","type":"feature","displayName":"EvaluatedTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.210749531Z[Etc/UTC]","duration":5,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/9a1dd403c2291505833ff3420bfdff3c80eefc24a4f3d943316a023fa621f2e5.html b/docs/serenity/9a1dd403c2291505833ff3420bfdff3c80eefc24a4f3d943316a023fa621f2e5.html new file mode 100644 index 0000000..0eb1bb0 --- /dev/null +++ b/docs/serenity/9a1dd403c2291505833ff3420bfdff3c80eefc24a4f3d943316a023fa621f2e5.html @@ -0,0 +1,888 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Feature + > Be/Sddevelopment/Validation/Validationruletest > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Feature: Be/Sddevelopment/Validation/Validationruletest > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 4 tests + + | + + +

    Note that results include + data-driven scenarios containing tests , + which may also contain results other than tests .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 4
    + Total Number of Test Cases + 4
    + Tests Started + Dec 26, 2023 09:48:43
    + Tests + Finished + Dec 26, 2023 09:48:43
    + Total + Duration + 152ms
    + Fastest Test + 0ms
    + Slowest + Test + 0ms
    + Average + Execution Time + 0ms
    + Total + Execution Time + 0ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 44100% + + +
    +
    +
    +
    +
    + Validation rule test + 44100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + ValidationRuleTest + Given two identical rules they are considered equal + 009:48:43 SUCCESS +
    + ValidationRuleTest + A validation rule can be build and used in a fluent way + 009:48:43 SUCCESS +
    + ValidationRuleTest + Rules are chainable + 009:48:43 SUCCESS +
    + ValidationRuleTest + Given two identical rules their hashcodes are identical + 009:48:43 SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.html b/docs/serenity/9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.html new file mode 100644 index 0000000..baa96e3 --- /dev/null +++ b/docs/serenity/9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.html @@ -0,0 +1,297 @@ + + + + + Guard throws a validation exception given invalid source data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Checked test + > Guard throws a validation exception given invalid source data + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 08:27 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Checked Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Guard throws a validation exception given invalid source data + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.json b/docs/serenity/9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.json new file mode 100644 index 0000000..779e8c9 --- /dev/null +++ b/docs/serenity/9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.json @@ -0,0 +1 @@ +{"name":"guard_throwsAValidationException_givenInvalidSourceData()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]/[method:guard_throwsAValidationException_givenInvalidSourceData()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]","testCaseName":"be.sddevelopment.validation.CheckedTest","methodName":"guard_throwsAValidationException_givenInvalidSourceData","userStory":{"id":"be.sddevelopment.validation.CheckedTest","storyName":"CheckedTest","displayName":"CheckedTest","storyClassName":"be.sddevelopment.validation.CheckedTest","path":"be.sddevelopment.validation.CheckedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"CheckedTest","description":"CheckedTest"}],"narrative":"","type":"feature"},"title":"Guard throws a validation exception given invalid source data","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/CheckedTest","type":"feature","displayName":"Checked test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T08:27:16.183206876Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.html b/docs/serenity/9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.html new file mode 100644 index 0000000..e4e4d62 --- /dev/null +++ b/docs/serenity/9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.html @@ -0,0 +1,297 @@ + + + + + Guard has no effect given valid source data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Checked test + > Guard has no effect given valid source data + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 08:27 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Checked Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Guard has no effect given valid source data + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.json b/docs/serenity/9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.json new file mode 100644 index 0000000..c6c2a8c --- /dev/null +++ b/docs/serenity/9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.json @@ -0,0 +1 @@ +{"name":"guard_hasNoEffect_givenValidSourceData()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]/[method:guard_hasNoEffect_givenValidSourceData()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.CheckedTest]","testCaseName":"be.sddevelopment.validation.CheckedTest","methodName":"guard_hasNoEffect_givenValidSourceData","userStory":{"id":"be.sddevelopment.validation.CheckedTest","storyName":"CheckedTest","displayName":"CheckedTest","storyClassName":"be.sddevelopment.validation.CheckedTest","path":"be.sddevelopment.validation.CheckedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"CheckedTest","description":"CheckedTest"}],"narrative":"","type":"feature"},"title":"Guard has no effect given valid source data","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/CheckedTest","type":"feature","displayName":"Checked test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T08:27:16.121446178Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/9bdf4ae53274b7b8dea3c16da36c3df935945a9ac1d77c00939f70afcf31aaec.html b/docs/serenity/9bdf4ae53274b7b8dea3c16da36c3df935945a9ac1d77c00939f70afcf31aaec.html index 1f9178d..f2b70d4 100644 --- a/docs/serenity/9bdf4ae53274b7b8dea3c16da36c3df935945a9ac1d77c00939f70afcf31aaec.html +++ b/docs/serenity/9bdf4ae53274b7b8dea3c16da36c3df935945a9ac1d77c00939f70afcf31aaec.html @@ -185,7 +185,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -201,7 +201,7 @@

    Feature: Be/Sddevelopment > Duration Under 1 Seco
    - 5 tests + 14 tests | @@ -241,60 +241,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -356,8 +356,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -367,7 +367,7 @@

    Features

    @@ -377,10 +377,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -390,7 +390,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -402,8 +448,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -413,7 +482,7 @@

    Features

    @@ -423,7 +492,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -473,25 +542,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -502,8 +667,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -514,20 +679,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -593,7 +770,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -689,7 +866,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -772,7 +949,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -840,9 +1017,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -850,57 +1037,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/9d0c4ecd36abf5f4daa8441697936c79e900099abd955bb2187d83dbb0b02b04.html b/docs/serenity/9d0c4ecd36abf5f4daa8441697936c79e900099abd955bb2187d83dbb0b02b04.html index b8a379b..88d35c3 100644 --- a/docs/serenity/9d0c4ecd36abf5f4daa8441697936c79e900099abd955bb2187d83dbb0b02b04.html +++ b/docs/serenity/9d0c4ecd36abf5f4daa8441697936c79e900099abd955bb2187d83dbb0b02b04.html @@ -185,7 +185,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -201,7 +201,7 @@

    Feature: Be/Sddevelopment/Validation/Validationst
    - 2 tests + 3 tests | @@ -241,33 +241,33 @@

    Key Statistics

    Number of Scenarios - 2 + 3 Total Number of Test Cases - 2 + 3 Tests Started - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 28ms + 52ms @@ -280,21 +280,21 @@

    Key Statistics

    Slowest Test - 3ms + 5ms Average Execution Time - 3ms + 4ms Total Execution Time - 6ms + 12ms @@ -356,8 +356,8 @@

    Features

    Sddevelopment - 2 - 2 + 3 + 3 100% @@ -367,7 +367,7 @@

    Features

    @@ -379,8 +379,8 @@

    Features

    Validations test - 2 - 2 + 3 + 3 100% @@ -390,7 +390,7 @@

    Features

    @@ -425,6 +425,18 @@

    Automated Tests

    + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms + SUCCESS + + ValidationsTest @@ -432,8 +444,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -444,7 +456,7 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS @@ -511,7 +523,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 3}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -607,7 +619,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [2,0,0,0,0,0,0,0], + data: [3,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -690,7 +702,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['2','0','0','0','0','0','0','0'], + data: ['3','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -771,7 +783,7 @@

    Manual Tests

    datasets: [ { label: ['Passing Tests'], - data: [2,2], + data: [3,3], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { diff --git a/docs/serenity/SERENITY-JUNIT-021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.xml b/docs/serenity/SERENITY-JUNIT-021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.xml index a834683..b5c7acf 100644 --- a/docs/serenity/SERENITY-JUNIT-021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.xml +++ b/docs/serenity/SERENITY-JUNIT-021cc3852a5b5cefae8305746120fdfa4b48f0591304dc1f6f09ad47636f78b1.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.xml b/docs/serenity/SERENITY-JUNIT-056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.xml index 14b6636..344f478 100644 --- a/docs/serenity/SERENITY-JUNIT-056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.xml +++ b/docs/serenity/SERENITY-JUNIT-056c41871bf5dcdbd510cc8c437ac3c1855dc42f04eb8c5fb4230b40ed5f0d5b.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.xml b/docs/serenity/SERENITY-JUNIT-064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.xml new file mode 100644 index 0000000..01def08 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-064772f4127179de97c510131c07bbb0219a53cd32f30ce784cac3f79820e696.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.xml b/docs/serenity/SERENITY-JUNIT-27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.xml new file mode 100644 index 0000000..69421f1 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-27a31e183512417ff84a3e16fd9ea362bcc46ac131b50858986e7048275adef9.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.xml b/docs/serenity/SERENITY-JUNIT-290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.xml new file mode 100644 index 0000000..dd9aef8 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-290abf27fd5b6aa26c3d4523b78e53db2390c06f4166d1977ba4c9781789612a.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.xml b/docs/serenity/SERENITY-JUNIT-291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.xml new file mode 100644 index 0000000..e12dc1f --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-291e42590bd5658637729ec16ff28260c13b2206d3603db0cd2be2501c196d23.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.xml b/docs/serenity/SERENITY-JUNIT-453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.xml new file mode 100644 index 0000000..9bc87e1 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-453f6d9eb361d398a414cdb3c74000a6866ad7292774884e0ccaeb1965f41eac.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.xml b/docs/serenity/SERENITY-JUNIT-4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.xml new file mode 100644 index 0000000..dd9ff65 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-4aeb96517e05229cce4ac94fe9205d5909fd83ae892415ccde1541e03bf2c31b.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.xml b/docs/serenity/SERENITY-JUNIT-4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.xml new file mode 100644 index 0000000..0bcb7ef --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-4c39f9c3509b4739761e75c8c8766f2d877debe857c73972c2e1c9184d331aa0.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.xml b/docs/serenity/SERENITY-JUNIT-560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.xml new file mode 100644 index 0000000..ed6179c --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-560da3f97b01d57da44ae4e6b9271f115b66e4ce32b57c831a1f85ca9cd40d97.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.xml b/docs/serenity/SERENITY-JUNIT-9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.xml new file mode 100644 index 0000000..75c8c22 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-9602131b9453a7e5882f4e9b5b9043403d85d73e74e5ac66d54ed5835d7c67c8.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.xml b/docs/serenity/SERENITY-JUNIT-9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.xml new file mode 100644 index 0000000..87f0953 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-9a4cdb3531b2a1fffc584c204de8194234236d05dbe45d66a85874c4e5b3c5a6.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.xml b/docs/serenity/SERENITY-JUNIT-9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.xml new file mode 100644 index 0000000..863f107 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-9bc5e7e550e8ca1df92fd3f8575736c0cf36a173d2983c46c9f44884a678bcd8.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.xml b/docs/serenity/SERENITY-JUNIT-acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.xml index 56ea6ec..a20ee8a 100644 --- a/docs/serenity/SERENITY-JUNIT-acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.xml +++ b/docs/serenity/SERENITY-JUNIT-acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.xml b/docs/serenity/SERENITY-JUNIT-bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.xml new file mode 100644 index 0000000..7d03629 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.xml b/docs/serenity/SERENITY-JUNIT-c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.xml new file mode 100644 index 0000000..bd4971a --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.xml b/docs/serenity/SERENITY-JUNIT-d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.xml new file mode 100644 index 0000000..d474b92 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-dee9eb523de1c7c2787a25c1b28eea25577a3212414c91c5ab59e5ebe919b40d.xml b/docs/serenity/SERENITY-JUNIT-dee9eb523de1c7c2787a25c1b28eea25577a3212414c91c5ab59e5ebe919b40d.xml index 40774f3..51df670 100644 --- a/docs/serenity/SERENITY-JUNIT-dee9eb523de1c7c2787a25c1b28eea25577a3212414c91c5ab59e5ebe919b40d.xml +++ b/docs/serenity/SERENITY-JUNIT-dee9eb523de1c7c2787a25c1b28eea25577a3212414c91c5ab59e5ebe919b40d.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.xml b/docs/serenity/SERENITY-JUNIT-e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.xml new file mode 100644 index 0000000..29cf4f1 --- /dev/null +++ b/docs/serenity/SERENITY-JUNIT-e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/serenity/SERENITY-JUNIT-f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.xml b/docs/serenity/SERENITY-JUNIT-f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.xml index 63715e7..25b56b9 100644 --- a/docs/serenity/SERENITY-JUNIT-f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.xml +++ b/docs/serenity/SERENITY-JUNIT-f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/serenity/a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html b/docs/serenity/a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html index 2ef074e..4b8bdce 100644 --- a/docs/serenity/a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html +++ b/docs/serenity/a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Be","type":"capability","href":"a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html","nodes":[{"text":"Sddevelopment","type":"feature","href":"d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html","nodes":[{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Checked test","type":"feature","href":"1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"feature","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 story\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 feature\u003c/span\u003e "]}]; + var requirementsTree = [{"text":"Be","type":"capability","href":"a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html","nodes":[{"text":"Sddevelopment","type":"feature","href":"d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html","nodes":[{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Evaluated test","type":"feature","href":"37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]},{"text":"Invalid object exception test","type":"feature","href":"798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validation rule test","type":"feature","href":"f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e3 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"story","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[{"text":"Evaluated usages","type":"feature","href":"8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validator usage","type":"feature","href":"4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e5 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 story\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 feature\u003c/span\u003e "]}]; $('#tree').treeview({ data: requirementsTree, @@ -231,7 +231,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    @@ -305,60 +305,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -410,22 +410,22 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Duration - 844ms + 1s Total Number of Test Cases - 5 + 14 Fastest Test - 3ms + 0ms @@ -436,30 +436,30 @@

    Key Statistics

    Slowest Test - 109ms + 18ms Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Average Execution Time - 29ms + 4ms Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Execution Time - 146ms + 58ms @@ -483,31 +483,151 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + + Guard throws a validation exception given invalid source data + + + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + + Given checked with data when applying rule its evaluation is remembered + + + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + + Invalid object exception must contain all errors given multiple errors + + + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + + Given two identical rules they are considered equal + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + A validation rule can be build and used in a fluent way + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + Rules are chainable + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + Given two identical rules their hashcodes are identical + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + + Utility classes should not be instantiatable + + + + 0 + 09:48:44 + 005ms SUCCESS @@ -521,8 +641,8 @@

    Automated Tests

    0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -536,23 +656,38 @@

    Automated Tests

    0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages - Modular validators must cover basic usage given simple date based validation logic + Checked should allow for fluent usage when using it as a guard given invalid object 0 - 11:09:35 - 109ms + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage + + + Modular validators must cover basic usage given simple date based validation logic + + + + 0 + 09:48:44 + 004ms SUCCESS @@ -611,7 +746,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -706,7 +841,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -802,7 +937,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -885,7 +1020,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/a86bb0bbc8127c5c5f059a03416cb1da5499c855771639caaf05bc218fe7e39f.html b/docs/serenity/a86bb0bbc8127c5c5f059a03416cb1da5499c855771639caaf05bc218fe7e39f.html new file mode 100644 index 0000000..3a664da --- /dev/null +++ b/docs/serenity/a86bb0bbc8127c5c5f059a03416cb1da5499c855771639caaf05bc218fe7e39f.html @@ -0,0 +1,849 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Feature + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 4ms
    + Fastest Test + 4ms
    + Slowest + Test + 4ms
    + Average + Execution Time + 4ms
    + Total + Execution Time + 4ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Validator usage + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + ValidatorUsage + Modular validators must cover basic usage given simple date based validation logic + 009:48:44004ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.html b/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.html index 6b0f0ec..aee51d4 100644 --- a/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.html +++ b/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.html @@ -156,7 +156,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    diff --git a/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.json b/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.json index c45c42f..f3e8b63 100644 --- a/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.json +++ b/docs/serenity/acb1fb10bc3f48b27ecc673eb5174b082c39109cc6fd81713f338c686fe13ae2.json @@ -1 +1 @@ -{"name":"givenAnObjectWithANullField_havingNonNullFieldPredicate_fails()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]/[method:givenAnObjectWithANullField_havingNonNullFieldPredicate_fails()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]","testCaseName":"be.sddevelopment.validation.ValidationsTest","methodName":"givenAnObjectWithANullField_havingNonNullFieldPredicate_fails","userStory":{"id":"be.sddevelopment.validation.ValidationsTest","storyName":"ValidationsTest","displayName":"ValidationsTest","storyClassName":"be.sddevelopment.validation.ValidationsTest","path":"be.sddevelopment.validation.ValidationsTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationsTest","description":"ValidationsTest"}],"narrative":"","type":"feature"},"title":"Given an object with a null field having non null field predicate fails","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidationsTest","type":"feature","displayName":"ValidationsTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-23T11:09:36.164765337Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file +{"name":"givenAnObjectWithANullField_havingNonNullFieldPredicate_fails()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]/[method:givenAnObjectWithANullField_havingNonNullFieldPredicate_fails()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]","testCaseName":"be.sddevelopment.validation.ValidationsTest","methodName":"givenAnObjectWithANullField_havingNonNullFieldPredicate_fails","userStory":{"id":"be.sddevelopment.validation.ValidationsTest","storyName":"ValidationsTest","displayName":"ValidationsTest","storyClassName":"be.sddevelopment.validation.ValidationsTest","path":"be.sddevelopment.validation.ValidationsTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationsTest","description":"ValidationsTest"}],"narrative":"","type":"feature"},"title":"Given an object with a null field having non null field predicate fails","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidationsTest","type":"feature","displayName":"ValidationsTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.338748316Z[Etc/UTC]","duration":4,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/b226143f21b3336dac6605770b488e35202c1b86f1bfc2eb5480aa9ab09861fb.html b/docs/serenity/b226143f21b3336dac6605770b488e35202c1b86f1bfc2eb5480aa9ab09861fb.html new file mode 100644 index 0000000..350ff03 --- /dev/null +++ b/docs/serenity/b226143f21b3336dac6605770b488e35202c1b86f1bfc2eb5480aa9ab09861fb.html @@ -0,0 +1,885 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Feature + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 4 tests + + | + + +

    Note that results include + data-driven scenarios containing tests , + which may also contain results other than tests .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 4
    + Total Number of Test Cases + 4
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 76ms
    + Fastest Test + 3ms
    + Slowest + Test + 5ms
    + Average + Execution Time + 3ms
    + Total + Execution Time + 14ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 44100% + + +
    +
    +
    +
    +
    + Evaluated test + 44100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + EvaluatedTest + Guard has no effect given valid source data + 009:48:44003ms SUCCESS +
    + EvaluatedTest + Given checked with data and invalid data when applying rule it is evaluated as invalid + 009:48:44005ms SUCCESS +
    + EvaluatedTest + Guard throws a validation exception given invalid source data + 009:48:44003ms SUCCESS +
    + EvaluatedTest + Given checked with data when applying rule its evaluation is remembered + 009:48:44003ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/ba7011db75f37081cb2e8d23882424d8515860b02ad91bb5d0479c54a7228880.html b/docs/serenity/ba7011db75f37081cb2e8d23882424d8515860b02ad91bb5d0479c54a7228880.html new file mode 100644 index 0000000..327cb1e --- /dev/null +++ b/docs/serenity/ba7011db75f37081cb2e8d23882424d8515860b02ad91bb5d0479c54a7228880.html @@ -0,0 +1,849 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Feature + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 10ms
    + Fastest Test + 10ms
    + Slowest + Test + 10ms
    + Average + Execution Time + 10ms
    + Total + Execution Time + 10ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Evaluated usages + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + EvaluatedUsages + Checked should allow for fluent usage when using it as a guard given invalid object + 009:48:44010ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.html b/docs/serenity/bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.html new file mode 100644 index 0000000..53b0ca7 --- /dev/null +++ b/docs/serenity/bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.html @@ -0,0 +1,297 @@ + + + + + Given checked with data when applying rule its evaluation is remembered + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Evaluated test + > Given checked with data when applying rule its evaluation is remembered + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Evaluated Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Given checked with data when applying rule its evaluation is remembered + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.json b/docs/serenity/bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.json new file mode 100644 index 0000000..357ad7b --- /dev/null +++ b/docs/serenity/bb229351f8ffe7528ee1bb7991e71023e6f4e6fecad2422c7902d2bfd58c125f.json @@ -0,0 +1 @@ +{"name":"givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]/[method:givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]","testCaseName":"be.sddevelopment.validation.EvaluatedTest","methodName":"givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered","userStory":{"id":"be.sddevelopment.validation.EvaluatedTest","storyName":"EvaluatedTest","displayName":"EvaluatedTest","storyClassName":"be.sddevelopment.validation.EvaluatedTest","path":"be.sddevelopment.validation.EvaluatedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"EvaluatedTest","description":"EvaluatedTest"}],"narrative":"","type":"feature"},"title":"Given checked with data when applying rule its evaluation is remembered","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/EvaluatedTest","type":"feature","displayName":"EvaluatedTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.259543040Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/build-info.html b/docs/serenity/build-info.html index 3e1108f..79920c4 100644 --- a/docs/serenity/build-info.html +++ b/docs/serenity/build-info.html @@ -123,17 +123,8 @@
  • Requirements
  • -
  • - Capabilities -
  • -
  • - Features -
  • -
  • - Stories -
  • - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 12:37:57
    diff --git a/docs/serenity/c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.html b/docs/serenity/c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.html new file mode 100644 index 0000000..be2aeb0 --- /dev/null +++ b/docs/serenity/c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.html @@ -0,0 +1,299 @@ + + + + + Modular validators must cover basic usage given simple date based validation logic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validator dogfood test + + > Validator usage + > Modular validators must cover basic usage given simple date based validation logic + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Validator Usage +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Modular validators must cover basic usage given simple date based validation logic + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.json b/docs/serenity/c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.json new file mode 100644 index 0000000..20f820a --- /dev/null +++ b/docs/serenity/c0fccf23bee6c493e37562f4920e328747578cb190e382c7ddc94e175cac137b.json @@ -0,0 +1 @@ +{"name":"modularValidatorsMustCoverBasicUsage_givenSimpleDateBasedValidationLogic()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidatorDogfoodTest]/[nested-class:ValidatorUsage]/[method:modularValidatorsMustCoverBasicUsage_givenSimpleDateBasedValidationLogic()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidatorDogfoodTest]/[nested-class:ValidatorUsage]","testCaseName":"be.sddevelopment.validation.ValidatorDogfoodTest.ValidatorUsage","methodName":"modularValidatorsMustCoverBasicUsage_givenSimpleDateBasedValidationLogic","userStory":{"id":"be.sddevelopment.validation.ValidatorDogfoodTest.ValidatorUsage","storyName":"ValidatorUsage","displayName":"ValidatorUsage","storyClassName":"be.sddevelopment.validation.ValidatorDogfoodTest$ValidatorUsage","path":"be.sddevelopment.validation.ValidatorDogfoodTest.ValidatorUsage","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidatorDogfoodTest","description":"ValidatorDogfoodTest"},{"name":"ValidatorUsage","description":"ValidatorUsage"}],"narrative":"","type":"feature"},"title":"Modular validators must cover basic usage given simple date based validation logic","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidatorDogfoodTest/ValidatorUsage","type":"feature","displayName":"ValidatorUsage"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/ValidatorDogfoodTest","type":"story","displayName":"Validator dogfood test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.102754345Z[Etc/UTC]","duration":4,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/c9f7c54c009eb95a2d47cf425414d24f9d77855afed321f3afb14dcef0078b52.html b/docs/serenity/c9f7c54c009eb95a2d47cf425414d24f9d77855afed321f3afb14dcef0078b52.html new file mode 100644 index 0000000..bbfa8b2 --- /dev/null +++ b/docs/serenity/c9f7c54c009eb95a2d47cf425414d24f9d77855afed321f3afb14dcef0078b52.html @@ -0,0 +1,885 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + +
    +
    + Home + > Feature + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Test Results: All Tests

    + + + + + +
    +
    +
    + + 4 tests + + | + + +

    Note that results include + data-driven scenarios containing tests , + which may also contain results other than tests .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 4
    + Total Number of Test Cases + 4
    + Tests Started + Dec 26, 2023 09:48:43
    + Tests + Finished + Dec 26, 2023 09:48:43
    + Total + Duration + 152ms
    + Fastest Test + 0ms
    + Slowest + Test + 0ms
    + Average + Execution Time + 0ms
    + Total + Execution Time + 0ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 44100% + + +
    +
    +
    +
    +
    + Validation rule test + 44100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + ValidationRuleTest + Given two identical rules they are considered equal + 009:48:43 SUCCESS +
    + ValidationRuleTest + A validation rule can be build and used in a fluent way + 009:48:43 SUCCESS +
    + ValidationRuleTest + Rules are chainable + 009:48:43 SUCCESS +
    + ValidationRuleTest + Given two identical rules their hashcodes are identical + 009:48:43 SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/cad2700a4d756e8f652e26f3c24345662038c3fb5150c8fe8fe1d6568734302b.html b/docs/serenity/cad2700a4d756e8f652e26f3c24345662038c3fb5150c8fe8fe1d6568734302b.html new file mode 100644 index 0000000..ab73f05 --- /dev/null +++ b/docs/serenity/cad2700a4d756e8f652e26f3c24345662038c3fb5150c8fe8fe1d6568734302b.html @@ -0,0 +1,852 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Feature + > Be/Sddevelopment/Validation/Validatordogfoodtest/Validatorusage > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Feature: Be/Sddevelopment/Validation/Validatordogfoodtest/Validatorusage > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 09:48:44
    + Tests + Finished + Dec 26, 2023 09:48:44
    + Total + Duration + 4ms
    + Fastest Test + 4ms
    + Slowest + Test + 4ms
    + Average + Execution Time + 4ms
    + Total + Execution Time + 4ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Validator usage + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + ValidatorUsage + Modular validators must cover basic usage given simple date based validation logic + 009:48:44004ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/capabilities.html b/docs/serenity/capabilities.html index 7c1b68e..d7c08c4 100644 --- a/docs/serenity/capabilities.html +++ b/docs/serenity/capabilities.html @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Be","type":"capability","href":"a331f95a3cdd6ada017662892283e1700e0c96c2b733b3cdf5b91ad35a3f83d4.html","nodes":[{"text":"Sddevelopment","type":"feature","href":"d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html","nodes":[{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Checked test","type":"feature","href":"1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"feature","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 story\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 feature\u003c/span\u003e "]}]; + var requirementsTree = []; $('#tree').treeview({ data: requirementsTree, @@ -219,17 +219,8 @@
  • Requirements
  • -
  • - Capabilities -
  • -
  • - Features -
  • -
  • - Stories -
  • - Report generated 23-12-2023 11:09 + Report generated
    @@ -263,9 +254,6 @@

    Feature Coverage By Scenario

    -
    - -
    @@ -283,60 +271,60 @@

    Key Statistics

    Number of Scenarios - 5 + 0 Total Number of Test Cases - 5 + 0 Tests Started - Dec 23, 2023 11:09:35 + Tests Finished - Dec 23, 2023 11:09:36 + Total Duration - 844ms + 0ms Fastest Test - 3ms + 0ms Slowest Test - 109ms + 0ms Average Execution Time - 29ms + 0ms Total Execution Time - 146ms + 0ms @@ -354,9 +342,6 @@

    Key Statistics

    Feature Coverage By Scenario

    -
    - -

    Test Outcomes

    @@ -388,22 +373,22 @@

    Key Statistics

    Number of Scenarios - 5 + 0 Total Duration - 844ms + 0ms Total Number of Test Cases - 5 + 0 Fastest Test - 3ms + 0ms @@ -414,30 +399,30 @@

    Key Statistics

    Slowest Test - 109ms + 0ms Tests Started - Dec 23, 2023 11:09:35 + Average Execution Time - 29ms + 0ms Tests Finished - Dec 23, 2023 11:09:36 + Total Execution Time - 146ms + 0ms @@ -446,96 +431,7 @@

    Key Statistics

    Automated Tests

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    storyScenarioContextStepsStartedTotal DurationResult
    - CheckedTest - - Given checked with data and invalid data when applying rule it is evaluated as invalid - - 011:09:36027ms SUCCESS -
    - CheckedTest - - Given checked with data when applying rule its evaluation is remembered - - 011:09:36004ms SUCCESS -
    - ValidationsTest - - Given an object with a null field having non null field predicate fails - - 011:09:36003ms SUCCESS -
    - ValidationsTest - - Given an object with no null field having non null field predicate succeeds - - 011:09:36003ms SUCCESS -
    - ValidatorDogfoodTest - - Modular validators must cover basic usage given simple date based validation logic - - 011:09:35109ms SUCCESS -
    + No automated tests were executed
    @@ -589,7 +485,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 0}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -640,7 +536,7 @@

    Manual Tests

    ctx.font = fontSize + "em sans-serif"; ctx.textBaseline = "middle"; - var text = "100%" + var text = " " textX = 10 + Math.round((width - ctx.measureText(text).width) / 2); textY = (height / 2) - 40; @@ -684,7 +580,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 0}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -735,7 +631,7 @@

    Manual Tests

    ctx.font = fontSize + "em sans-serif"; ctx.textBaseline = "middle"; - var text = "100%" + var text = " " textX = 10 + Math.round((width - ctx.measureText(text).width) / 2); textY = (height / 2) - 40; @@ -780,7 +676,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [0,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -863,7 +759,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['0','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html b/docs/serenity/d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html index 98916b6..48e9bea 100644 --- a/docs/serenity/d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html +++ b/docs/serenity/d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Sddevelopment","type":"feature","href":"d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html","nodes":[{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Checked test","type":"feature","href":"1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"feature","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 story\u003c/span\u003e "]}]; + var requirementsTree = [{"text":"Sddevelopment","type":"feature","href":"d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html","nodes":[{"text":"Validation","type":"story","href":"73b26f5f31f50188c4ff873b87ab63a0da2dabea5e8b512f9ad1240faee315fe.html","nodes":[{"text":"Evaluated test","type":"feature","href":"37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]},{"text":"Invalid object exception test","type":"feature","href":"798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validation rule test","type":"feature","href":"f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e4 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e4 test cases\u003c/span\u003e"]},{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e3 test cases\u003c/span\u003e"]},{"text":"Validator dogfood test","type":"story","href":"6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html","nodes":[{"text":"Evaluated usages","type":"feature","href":"8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]},{"text":"Validator usage","type":"feature","href":"4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 scenario\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e1 test case\u003c/span\u003e"]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e5 features\u003c/span\u003e "]}],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e1 story\u003c/span\u003e "]}]; $('#tree').treeview({ data: requirementsTree, @@ -232,7 +232,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    @@ -306,60 +306,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -411,22 +411,22 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Duration - 844ms + 1s Total Number of Test Cases - 5 + 14 Fastest Test - 3ms + 0ms @@ -437,30 +437,30 @@

    Key Statistics

    Slowest Test - 109ms + 18ms Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Average Execution Time - 29ms + 4ms Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Execution Time - 146ms + 58ms @@ -484,31 +484,151 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + + Guard throws a validation exception given invalid source data + + + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + + Given checked with data when applying rule its evaluation is remembered + + + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + + Invalid object exception must contain all errors given multiple errors + + + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + + Given two identical rules they are considered equal + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + A validation rule can be build and used in a fluent way + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + Rules are chainable + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + + Given two identical rules their hashcodes are identical + + + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + + Utility classes should not be instantiatable + + + + 0 + 09:48:44 + 005ms SUCCESS @@ -522,8 +642,8 @@

    Automated Tests

    0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -537,23 +657,38 @@

    Automated Tests

    0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages - Modular validators must cover basic usage given simple date based validation logic + Checked should allow for fluent usage when using it as a guard given invalid object 0 - 11:09:35 - 109ms + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage + + + Modular validators must cover basic usage given simple date based validation logic + + + + 0 + 09:48:44 + 004ms SUCCESS @@ -612,7 +747,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -707,7 +842,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -803,7 +938,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -886,7 +1021,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.html b/docs/serenity/d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.html new file mode 100644 index 0000000..cd577d4 --- /dev/null +++ b/docs/serenity/d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.html @@ -0,0 +1,299 @@ + + + + + Checked should allow for fluent usage when using it as a guard given invalid object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Validator dogfood test + + > Evaluated usages + > Checked should allow for fluent usage when using it as a guard given invalid object + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Evaluated Usages +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Checked should allow for fluent usage when using it as a guard given invalid object + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0.01s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.json b/docs/serenity/d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.json new file mode 100644 index 0000000..6942951 --- /dev/null +++ b/docs/serenity/d3ca31bfe360ae6869214421aa13ad98447d532541ef687add5135ab05ff1764.json @@ -0,0 +1 @@ +{"name":"checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidatorDogfoodTest]/[nested-class:EvaluatedUsages]/[method:checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidatorDogfoodTest]/[nested-class:EvaluatedUsages]","testCaseName":"be.sddevelopment.validation.ValidatorDogfoodTest.EvaluatedUsages","methodName":"checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject","userStory":{"id":"be.sddevelopment.validation.ValidatorDogfoodTest.EvaluatedUsages","storyName":"EvaluatedUsages","displayName":"EvaluatedUsages","storyClassName":"be.sddevelopment.validation.ValidatorDogfoodTest$EvaluatedUsages","path":"be.sddevelopment.validation.ValidatorDogfoodTest.EvaluatedUsages","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidatorDogfoodTest","description":"ValidatorDogfoodTest"},{"name":"EvaluatedUsages","description":"EvaluatedUsages"}],"narrative":"","type":"feature"},"title":"Checked should allow for fluent usage when using it as a guard given invalid object","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidatorDogfoodTest/EvaluatedUsages","type":"feature","displayName":"EvaluatedUsages"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be/sddevelopment/validation/ValidatorDogfoodTest","type":"story","displayName":"Validator dogfood test"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.043207472Z[Etc/UTC]","duration":10,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.html b/docs/serenity/e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.html new file mode 100644 index 0000000..074cb37 --- /dev/null +++ b/docs/serenity/e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.html @@ -0,0 +1,297 @@ + + + + + Guard throws a validation exception given invalid source data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    +
    +
    + + Home + + + > Be + + > Sddevelopment + + > Validation + + > Evaluated test + > Guard throws a validation exception given invalid source data + +
    +
    +
    + +
    + + +
    + + Report generated 26-12-2023 09:48 +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    +

    + + Evaluated Test +

    + +
    + +
    +

    + +   + Under 1 Second + (Duration) + + + +

    +
    +
    +
    + + + + +
    + + + + Guard throws a validation exception given invalid source data + + + + + +
    +
    + + + +
    +
    + +
    + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + Steps + Outcome
    SUCCESS0s
    +
    +
    + +
    + + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + +
    + + diff --git a/docs/serenity/e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.json b/docs/serenity/e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.json new file mode 100644 index 0000000..f525069 --- /dev/null +++ b/docs/serenity/e9deb837a9eca502bacdc6eee28a9633938ef0b4321ed1a903ecff3e3fe17917.json @@ -0,0 +1 @@ +{"name":"guard_throwsAValidationException_givenInvalidSourceData()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]/[method:guard_throwsAValidationException_givenInvalidSourceData()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.EvaluatedTest]","testCaseName":"be.sddevelopment.validation.EvaluatedTest","methodName":"guard_throwsAValidationException_givenInvalidSourceData","userStory":{"id":"be.sddevelopment.validation.EvaluatedTest","storyName":"EvaluatedTest","displayName":"EvaluatedTest","storyClassName":"be.sddevelopment.validation.EvaluatedTest","path":"be.sddevelopment.validation.EvaluatedTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"EvaluatedTest","description":"EvaluatedTest"}],"narrative":"","type":"feature"},"title":"Guard throws a validation exception given invalid source data","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/EvaluatedTest","type":"feature","displayName":"EvaluatedTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.237936889Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/eea501dc427d96d7f92e4d894de83352a6fbaebfc8ce034a219f6ee762df11ac.html b/docs/serenity/eea501dc427d96d7f92e4d894de83352a6fbaebfc8ce034a219f6ee762df11ac.html index f55be4a..d54aa28 100644 --- a/docs/serenity/eea501dc427d96d7f92e4d894de83352a6fbaebfc8ce034a219f6ee762df11ac.html +++ b/docs/serenity/eea501dc427d96d7f92e4d894de83352a6fbaebfc8ce034a219f6ee762df11ac.html @@ -185,7 +185,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 09:48:47
    @@ -201,7 +201,7 @@

    Capability: Be > Duration Under 1 Second

    - 5 tests + 14 tests | @@ -241,60 +241,60 @@

    Key Statistics

    Number of Scenarios - 5 + 14 Total Number of Test Cases - 5 + 14 Tests Started - Dec 23, 2023 11:09:35 + Dec 26, 2023 09:48:43 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 09:48:44 Total Duration - 844ms + 1s Fastest Test - 3ms + 0ms Slowest Test - 109ms + 18ms Average Execution Time - 29ms + 4ms Total Execution Time - 146ms + 58ms @@ -356,8 +356,8 @@

    Features

    Sddevelopment - 5 - 5 + 14 + 14 100% @@ -367,7 +367,7 @@

    Features

    @@ -377,10 +377,10 @@

    Features

    - Checked test + Evaluated test - 2 - 2 + 4 + 4 100% @@ -390,7 +390,53 @@

    Features

    +
    +
    + + + + + Invalid object exception test + + 1 + 1 + 100% + + + + +
    +
    +
    +
    + + + + + Validation rule test + + 4 + 4 + 100% + + + + +
    +
    @@ -402,8 +448,31 @@

    Features

    Validations test - 2 - 2 + 3 + 3 + 100% + + + + +
    +
    +
    +
    + + + + + Evaluated usages + + 1 + 1 100% @@ -413,7 +482,7 @@

    Features

    @@ -423,7 +492,7 @@

    Features

    - Validator dogfood test + Validator usage 1 1 @@ -473,25 +542,121 @@

    Automated Tests

    - CheckedTest + EvaluatedTest - Given checked with data and invalid data when applying rule it is evaluated as invalid + Guard has no effect given valid source data 0 - 11:09:36 - 027ms + 09:48:44 + 003ms SUCCESS - CheckedTest + EvaluatedTest - Given checked with data when applying rule its evaluation is remembered + Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 004ms + 09:48:44 + 005ms + SUCCESS + + + + + EvaluatedTest + + Guard throws a validation exception given invalid source data + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + EvaluatedTest + + Given checked with data when applying rule its evaluation is remembered + + 0 + 09:48:44 + 003ms + SUCCESS + + + + + InvalidObjectExceptionTest + + Invalid object exception must contain all errors given multiple errors + + 0 + 09:48:43 + 018ms + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules they are considered equal + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Rules are chainable + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 0 + 09:48:43 + + SUCCESS + + + + + ValidationsTest + + Utility classes should not be instantiatable + + 0 + 09:48:44 + 005ms SUCCESS @@ -502,8 +667,8 @@

    Automated Tests

    Given an object with a null field having non null field predicate fails 0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -514,20 +679,32 @@

    Automated Tests

    Given an object with no null field having non null field predicate succeeds 0 - 11:09:36 + 09:48:44 003ms SUCCESS - ValidatorDogfoodTest + EvaluatedUsages + + Checked should allow for fluent usage when using it as a guard given invalid object + + 0 + 09:48:44 + 010ms + SUCCESS + + + + + ValidatorUsage - Modular validators must cover basic usage given simple date based validation logic + Modular validators must cover basic usage given simple date based validation logic 0 - 11:09:35 - 109ms + 09:48:44 + 004ms SUCCESS @@ -593,7 +770,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 5}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 14}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -689,7 +866,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [14,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -772,7 +949,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['14','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -840,9 +1017,19 @@

    Manual Tests

    link: "d2198a1d45dc949351523c85d368e3233a4ad15a551de2a43fa213250f2e5d53.html" }, { - title: 'Checked test', + title: 'Evaluated test', result: 'SUCCESS', - link: "1ec084fa34d05134aea7d135b98db7fcf18ef32ece4a23fd81c84b875d502470.html" + link: "37b17597f7c604b8c45a54df2dc2cd1d173a524822486de663d8723bb0154e70.html" + }, + { + title: 'Invalid object exception test', + result: 'SUCCESS', + link: "798622fc47b7f50183a9aed3fc015103796870843013d2d81d3bff1169aaf7f8.html" + }, + { + title: 'Validation rule test', + result: 'SUCCESS', + link: "f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html" }, { title: 'Validations test', @@ -850,57 +1037,65 @@

    Manual Tests

    link: "fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html" }, { - title: 'Validator dogfood test', + title: 'Evaluated usages', + result: 'SUCCESS', + link: "8ab488035c73f6a0e69821fe65e6057379d6b097ddf5763788a71385f2765d95.html" + }, + { + title: 'Validator usage', result: 'SUCCESS', - link: "6ebe63ae21b3d41322277183d4663aed5d68078b9eebcd941fd24a44777f456b.html" + link: "4f2cdfe4877188e808db6bc7d37b079fd0acabb751e1d28c62af24906d352a1a.html" }, ] const coverageData = { labels: [ 'Sddevelopment', - 'Checked test', + 'Evaluated test', + 'Invalid object exception test', + 'Validation rule test', 'Validations test', - 'Validator dogfood test', + 'Evaluated usages', + 'Validator usage', ], datasets: [ { label: ['Passing Tests'], - data: [5,2,2,1], + data: [14,4,1,4,3,1,1], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { label: ['Pending Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(165, 199, 238, 0.5)' ] }, { label: ['Ignored Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(168, 168, 168, 0.5)' ] }, { label: ['Skipped Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(238, 224, 152, 0.75)' ] }, { label: ['Aborted Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 153, 102, 0.5)' ] }, { label: ['Failed Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 22, 49, 0.5)' ] }, { label: ['Errors'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 97, 8, 0.5)' ] }, { label: ['Compromised Tests'], - data: [0,0,0,0], + data: [0,0,0,0,0,0,0], backgroundColor: [ 'rgba(255, 104, 255, 0.5)' ] }, ] diff --git a/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.html b/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.html index 1a309f5..3c234a3 100644 --- a/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.html +++ b/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.html @@ -156,7 +156,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    diff --git a/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.json b/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.json index ce3b440..29f10c2 100644 --- a/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.json +++ b/docs/serenity/f3ee29a617eb00ea39039b1367c1b36291fe990929274f11206e66db59a5af7d.json @@ -1 +1 @@ -{"name":"givenAnObjectWithNoNullField_havingNonNullFieldPredicate_succeeds()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]/[method:givenAnObjectWithNoNullField_havingNonNullFieldPredicate_succeeds()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]","testCaseName":"be.sddevelopment.validation.ValidationsTest","methodName":"givenAnObjectWithNoNullField_havingNonNullFieldPredicate_succeeds","userStory":{"id":"be.sddevelopment.validation.ValidationsTest","storyName":"ValidationsTest","displayName":"ValidationsTest","storyClassName":"be.sddevelopment.validation.ValidationsTest","path":"be.sddevelopment.validation.ValidationsTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationsTest","description":"ValidationsTest"}],"narrative":"","type":"feature"},"title":"Given an object with no null field having non null field predicate succeeds","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidationsTest","type":"feature","displayName":"ValidationsTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-23T11:09:36.190261449Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file +{"name":"givenAnObjectWithNoNullField_havingNonNullFieldPredicate_succeeds()","id":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]/[method:givenAnObjectWithNoNullField_havingNonNullFieldPredicate_succeeds()]","scenarioId":"[engine:junit-jupiter]/[class:be.sddevelopment.validation.ValidationsTest]","testCaseName":"be.sddevelopment.validation.ValidationsTest","methodName":"givenAnObjectWithNoNullField_havingNonNullFieldPredicate_succeeds","userStory":{"id":"be.sddevelopment.validation.ValidationsTest","storyName":"ValidationsTest","displayName":"ValidationsTest","storyClassName":"be.sddevelopment.validation.ValidationsTest","path":"be.sddevelopment.validation.ValidationsTest","pathElements":[{"name":"be","description":"be"},{"name":"sddevelopment","description":"sddevelopment"},{"name":"validation","description":"validation"},{"name":"ValidationsTest","description":"ValidationsTest"}],"narrative":"","type":"feature"},"title":"Given an object with no null field having non null field predicate succeeds","tags":[{"name":"be/sddevelopment","type":"feature","displayName":"Sddevelopment"},{"name":"be/sddevelopment/validation/ValidationsTest","type":"feature","displayName":"ValidationsTest"},{"name":"be/sddevelopment/validation","type":"story","displayName":"Validation"},{"name":"be","type":"capability","displayName":"Be"}],"startTime":"2023-12-26T09:48:44.364114919Z[Etc/UTC]","duration":3,"projectKey":"","driver":"","isManualTestingUpToDate":false,"manual":false,"testSource":"JUnit5","order":0,"result":"SUCCESS"} \ No newline at end of file diff --git a/docs/serenity/f5676dd02deffcf195c021853a8ed0a619cb6a85fbd7ac34c6470f9c2863fb9f.html b/docs/serenity/f5676dd02deffcf195c021853a8ed0a619cb6a85fbd7ac34c6470f9c2863fb9f.html new file mode 100644 index 0000000..a6b8c60 --- /dev/null +++ b/docs/serenity/f5676dd02deffcf195c021853a8ed0a619cb6a85fbd7ac34c6470f9c2863fb9f.html @@ -0,0 +1,852 @@ + + + + + + + + + Serenity Reports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + +
    + + +
    +
    + Home + > Feature + > Be/Sddevelopment/Validation/Invalidobjectexceptiontest > Duration Under 1 Second + +
    +
    +
    + +
    + +
    + + Report generated 26-12-2023 09:48:47 +
    +
    +
    +
    +
    +
    +
    + +

    Feature: Be/Sddevelopment/Validation/Invalidobjectexceptiontest > Duration Under 1 Second

    + + + + + +
    +
    +
    + + 1 test + + | + + +

    Note that results include + data-driven scenarios containing test , + which may also contain results other than test .

    + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 1
    + Total Number of Test Cases + 1
    + Tests Started + Dec 26, 2023 09:48:43
    + Tests + Finished + Dec 26, 2023 09:48:43
    + Total + Duration + 18ms
    + Fastest Test + 18ms
    + Slowest + Test + 18ms
    + Average + Execution Time + 18ms
    + Total + Execution Time + 18ms
    +
    +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +

    Functional Coverage Overview

    +

    Features

    + +
    +
    +
    +
    + +
    +
    +
    +

    Functional Coverage Details

    + + +

    Features

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FeatureTest CasesScenarios% PassResultCoverage
    + Sddevelopment + 11100% + + +
    +
    +
    +
    +
    + Invalid object exception test + 11100% + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioStepsStartedTotal DurationResult
    + InvalidObjectExceptionTest + Invalid object exception must contain all errors given multiple errors + 009:48:43018ms SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html b/docs/serenity/f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html new file mode 100644 index 0000000..ccb1f80 --- /dev/null +++ b/docs/serenity/f8003655b7a95ae0a03e574b78a90bca4482549bc0e475ea16f608ef3a3b5b5b.html @@ -0,0 +1,1106 @@ + + + + + + + Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + Serenity BDD Report + + +
    +
    +
    + + +
    +
    +
    + + Home > Requirements + + > Be + > Sddevelopment + > Validation + + + > Validation rule test + + +
    +
    +
    +
    + + + +
    + + Report generated 26-12-2023 09:48 +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +

    Feature: Validation rule test

    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + + +
    + +
    + +
    +
    + +
    +

    Overview

    + + + + + + + + + + + + + + + + + + + + + +
    + + + Scenario: Given two identical rules they are considered equal + + + + + + + + + +
    + + + + + + + + +
    +
    + + + Scenario: A validation rule can be build and used in a fluent way + + + + + + + + + +
    + + + + + + + + +
    +
    + + + Scenario: Rules are chainable + + + + + + + + + +
    + + + + + + + + +
    +
    + + + Scenario: Given two identical rules their hashcodes are identical + + + + + + + + + +
    + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    +

    Scenarios

    + + +

    +

    + + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + + Scenario: Rules are chainable + + + + + + + + + + +
    + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Feature Coverage By Scenario

    + +
    + +
    +
    +
    +

    Test Outcomes

    + +
    + +
    +
    + +
    +

    Test Performance

    + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +

    Key Statistics

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Scenarios + 4 + Total + Duration + 152ms
    + Total Number of Test Cases + 4 + Fastest Test + 0ms
    + Number of Manual Test Cases + 0 + Slowest + Test + 0ms
    + Tests Started + Dec 26, 2023 09:48:43 + Average + Execution Time + 0ms
    + Tests + Finished + Dec 26, 2023 09:48:43 + Total + Execution Time + 0ms
    +
    +
    + +

    Automated Tests

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    storyScenarioContextStepsStartedTotal DurationResult
    + ValidationRuleTest + + Given two identical rules they are considered equal + + 009:48:43 SUCCESS +
    + ValidationRuleTest + + A validation rule can be build and used in a fluent way + + 009:48:43 SUCCESS +
    + ValidationRuleTest + + Rules are chainable + + 009:48:43 SUCCESS +
    + ValidationRuleTest + + Given two identical rules their hashcodes are identical + + 009:48:43 SUCCESS +
    + +
    +
    + +
    +
    +

    Manual Tests

    + + No manual tests were recorded + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Serenity BDD version 4.0.29 +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + diff --git a/docs/serenity/fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html b/docs/serenity/fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html index 4e8fd4d..a24471e 100644 --- a/docs/serenity/fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html +++ b/docs/serenity/fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html @@ -154,7 +154,7 @@ $("#requirements-tabs").tabs(); $("#test-tabs").tabs(); - var requirementsTree = [{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e2 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e2 test cases\u003c/span\u003e"]}]; + var requirementsTree = [{"text":"Validations test","type":"feature","href":"fbd1f88d3747904a4edccee6dc82ecc55de45ddccd3e2d1061aaad523d65f589.html","nodes":[],"selectable":false,"tags":["\u003ca href\u003d\u0027##beforetable\u0027\u003e\u003ci class\u003d\u0027bi bi-check-circle-fill success-icon \u0027 title\u003d\u0027SUCCESS\u0027\u003e\u003c/i\u003e\u003c/a\u003e","\u003cspan class\u003d\u0027feature-count\u0027\u003e3 scenarios\u003c/span\u003e, \u003cspan class\u003d\u0027feature-count\u0027\u003e3 test cases\u003c/span\u003e"]}]; $('#tree').treeview({ data: requirementsTree, @@ -234,7 +234,7 @@ Stories - Report generated 23-12-2023 11:09 + Report generated 26-12-2023 09:48
    @@ -298,6 +298,39 @@

    Feature Coverage By Scenario

    Overview

    + + + + + - + - + - + @@ -500,30 +559,30 @@

    Key Statistics

    Slowest Test - + - + - + - + - +
    + + + Scenario: Utility classes should not be instantiatable + + + + + + + + + +
    + + + + + + + + +
    +
    @@ -373,11 +406,37 @@

    Overview

    Scenarios

    - +

    +
    + +
    +
    +
    +
    +
    +
    @@ -474,18 +533,18 @@

    Key Statistics

    Number of Scenarios 23 Total Duration 28ms52ms
    Total Number of Test Cases 23 Fastest Test 3ms5ms
    Tests Started Dec 23, 2023 11:09:36Dec 26, 2023 09:48:44 Average Execution Time 3ms4ms
    Tests Finished Dec 23, 2023 11:09:36Dec 26, 2023 09:48:44 Total Execution Time 6ms12ms
    @@ -545,6 +604,21 @@

    Automated Tests

    + + + ValidationsTest + + + Utility classes should not be instantiatable + + + + 0 + 09:48:44 + 005ms + SUCCESS + + ValidationsTest @@ -555,8 +629,8 @@

    Automated Tests

    0 - 11:09:36 - 003ms + 09:48:44 + 004ms SUCCESS @@ -570,7 +644,7 @@

    Automated Tests

    0 - 11:09:36 + 09:48:44 003ms SUCCESS @@ -630,7 +704,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 3}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -725,7 +799,7 @@

    Manual Tests

    datasets: [{ label: 'Feature Coverage', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 3}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -821,7 +895,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [2,0,0,0,0,0,0,0], + data: [3,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -904,7 +978,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['2','0','0','0','0','0','0','0'], + data: ['3','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] diff --git a/docs/serenity/ff9c86eaf8e8eb0e6a7aebfe6ece5f091f081c609987609b9fcb9e241f48de3f.html b/docs/serenity/ff9c86eaf8e8eb0e6a7aebfe6ece5f091f081c609987609b9fcb9e241f48de3f.html index 178e581..6203c16 100644 --- a/docs/serenity/ff9c86eaf8e8eb0e6a7aebfe6ece5f091f081c609987609b9fcb9e241f48de3f.html +++ b/docs/serenity/ff9c86eaf8e8eb0e6a7aebfe6ece5f091f081c609987609b9fcb9e241f48de3f.html @@ -182,7 +182,7 @@ Stories - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 08:27:19
    @@ -198,7 +198,7 @@

    Test Results: All Tests

    - 2 tests + 4 tests | @@ -238,60 +238,60 @@

    Key Statistics

    Number of Scenarios - 2 + 4 Total Number of Test Cases - 2 + 4 Tests Started - Dec 23, 2023 11:09:36 + Dec 26, 2023 08:27:16 Tests Finished - Dec 23, 2023 11:09:36 + Dec 26, 2023 08:27:16 Total Duration - 68ms + 86ms Fastest Test - 4ms + 3ms Slowest Test - 27ms + 16ms Average Execution Time - 15ms + 6ms Total Execution Time - 31ms + 25ms @@ -353,8 +353,8 @@

    Features

    Sddevelopment - 2 - 2 + 4 + 4 100% @@ -364,7 +364,7 @@

    Features

    @@ -376,8 +376,8 @@

    Features

    Checked test - 2 - 2 + 4 + 4 100% @@ -387,7 +387,7 @@

    Features

    @@ -422,6 +422,18 @@

    Automated Tests

    + + + CheckedTest + + Guard has no effect given valid source data + + 0 + 08:27:16 + 003ms + SUCCESS + + CheckedTest @@ -429,8 +441,20 @@

    Automated Tests

    Given checked with data and invalid data when applying rule it is evaluated as invalid 0 - 11:09:36 - 027ms + 08:27:16 + 016ms + SUCCESS + + + + + CheckedTest + + Guard throws a validation exception given invalid source data + + 0 + 08:27:16 + 003ms SUCCESS @@ -441,8 +465,8 @@

    Automated Tests

    Given checked with data when applying rule its evaluation is remembered 0 - 11:09:36 - 004ms + 08:27:16 + 003ms SUCCESS @@ -508,7 +532,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [{meta: 'Passing tests', value: 2}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], + data: [{meta: 'Passing tests', value: 4}, {meta: 'Pending tests', value: 0}, {meta: 'Ignored tests', value: 0}, {meta: 'Skipped tests', value: 0}, {meta: 'Aborted tests', value: 0}, {meta: 'Failing tests', value: 0}, {meta: 'Broken tests', value: 0}, {meta: 'Compromised tests', value: 0}], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -604,7 +628,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [2,0,0,0,0,0,0,0], + data: [4,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -687,7 +711,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['2','0','0','0','0','0','0','0'], + data: ['4','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -768,7 +792,7 @@

    Manual Tests

    datasets: [ { label: ['Passing Tests'], - data: [2,2], + data: [4,4], backgroundColor: [ 'rgba(153,204,51,0.5)' ] }, { diff --git a/docs/serenity/index.html b/docs/serenity/index.html index 761b208..3c62f3e 100644 --- a/docs/serenity/index.html +++ b/docs/serenity/index.html @@ -191,17 +191,8 @@
  • Requirements
  • -
  • - Capabilities -
  • -
  • - Features -
  • -
  • - Stories -
  • - Report generated 23-12-2023 11:09:38 + Report generated 26-12-2023 12:37:57
    @@ -216,7 +207,7 @@

    Test Results: All Tests

    - 5 tests + 0 tests @@ -244,9 +235,6 @@

    Test Results: All Tests

    Overview

    -
    - -

    Test Outcomes

    @@ -267,15 +255,6 @@

    Test Performance

    -
    - -
    -

    Functional - Coverage Overview

    -

    Features

    - -
    -

    Key Statistics

    @@ -286,60 +265,60 @@

    Key Statistics

    Number of Scenarios - 5 + 0 Total Number of Test Cases - 5 + 0 Tests Started - Dec 23, 2023 11:09:35 + Tests Finished - Dec 23, 2023 11:09:36 + Total Duration - 844ms + 0ms Fastest Test - 3ms + 0ms Slowest Test - 109ms + 0ms Average Execution Time - 29ms + 0ms Total Execution Time - 146ms + 0ms @@ -349,122 +328,6 @@

    Key Statistics

    -
    -
    -

    Functional Coverage Details

    - - -

    Features

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    FeatureScenariosTest Cases% PassResultCoverage
    - Sddevelopment - 55100% - - -
    -
    -
    -
    -
    - Checked test - 22100% - - -
    -
    -
    -
    -
    - Validations test - 22100% - - -
    -
    -
    -
    -
    - Validator dogfood test - 11100% - - -
    -
    -
    -
    -
    -
    -
    @@ -483,22 +346,22 @@

    Key Statistics

    Number of Scenarios - 5 + 0 Total Duration - 844ms + 0ms Total Number of Test Cases - 5 + 0 Fastest Test - 3ms + 0ms @@ -509,30 +372,30 @@

    Key Statistics

    Slowest Test - 109ms + 0ms Tests Started - Dec 23, 2023 11:09:35 + Average Execution Time - 29ms + 0ms Tests Finished - Dec 23, 2023 11:09:36 + Total Execution Time - 146ms + 0ms @@ -541,102 +404,7 @@

    Key Statistics

    Automated Scenarios

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    storyScenarioContextStepsStartedTotal DurationResult
    - CheckedTest - - Given checked with data and invalid data when applying rule it is evaluated as invalid - - 011:09:36027ms SUCCESS -
    - CheckedTest - - Given checked with data when applying rule its evaluation is remembered - - 011:09:36004ms SUCCESS -
    - ValidationsTest - - Given an object with a null field having non null field predicate fails - - 011:09:36003ms SUCCESS -
    - ValidationsTest - - Given an object with no null field having non null field predicate succeeds - - 011:09:36003ms SUCCESS -
    - ValidatorDogfoodTest - - Modular validators must cover basic usage given simple date based validation logic - - 011:09:35109ms SUCCESS -
    + No automated tests were executed
    @@ -697,7 +465,7 @@

    Manual Tests

    datasets: [{ label: 'Test Results', fill: false, - data: [5,0,0,0,0,0,0,0], + data: [0,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1, @@ -748,7 +516,7 @@

    Manual Tests

    ctx.font = fontSize + "em sans-serif"; ctx.textBaseline = "middle"; - var text = "100%" + var text = " " textX = 10 + Math.round((width - ctx.measureText(text).width) / 2); textY = (height / 2) - 40; @@ -793,7 +561,7 @@

    Manual Tests

    datasets: [ { label: 'Automated', - data: [5,0,0,0,0,0,0,0], + data: [0,0,0,0,0,0,0,0], backgroundColor: ['rgba(153,204,51,0.5)','rgba(165, 199, 238, 0.5)','rgba(168, 168, 168, 0.5)','rgba(238, 224, 152, 0.75)','rgba(255, 153, 102, 0.5)','rgba(255, 22, 49, 0.5)','rgba(255, 97, 8, 0.5)','rgba(255, 104, 255, 0.5)','rgba(83, 50, 168, 0.5)'], borderColor: ['rgba(153,204,51,1)','rgba(165, 199, 238, 1)','rgba(168, 168, 168, 1)','rgba(238, 224, 152, 1)','rgba(255, 153, 102, 1)','rgba(255, 22, 49, 1)','rgba(255, 97, 8, 1)','rgba(255, 104, 255, 1)','rgba(83, 50, 168, 1)'], borderWidth: 1 @@ -876,7 +644,7 @@

    Manual Tests

    datasets: [{ label: 'Number of tests per duration', fill: false, - data: ['5','0','0','0','0','0','0','0'], + data: ['0','0','0','0','0','0','0','0'], backgroundColor: 'rgba(83, 146, 255,0.5)', borderColor: 'rgba(83, 146, 255, 1)', }] @@ -928,135 +696,5 @@

    Manual Tests

    - - - - - diff --git a/docs/serenity/summary.txt b/docs/serenity/summary.txt index e90ea01..d12960e 100644 --- a/docs/serenity/summary.txt +++ b/docs/serenity/summary.txt @@ -1,7 +1,7 @@ -Serenity report generated 23-12-2023 11:09:38 +Serenity report generated 26-12-2023 12:37:57 -Test Cases: 5 -Passed: 5 +Test Cases: 0 +Passed: 0 Failed: 0 Failed with errors: 0 Compromised: 0 diff --git a/pom.xml b/pom.xml index 34b34f3..5b7f301 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,8 @@ Java library to create modular validator-objects. Intended to be used as a utility library in other projects to avoid the overhead of writing custom validation frameworks. Modular Validators supports the creation - of specific validator objects, that can use both internal state, and external services to assess the validity of an + of specific validator objects, that can use both internal state, and external services to assess the validity of + an object. @@ -79,6 +80,29 @@ ${serenity.version} test + + org.apache.commons + commons-lang3 + 3.14.0 + + + org.mockito + mockito-junit-jupiter + 5.8.0 + test + + + net.bytebuddy + byte-buddy + 1.14.11 + test + + + net.bytebuddy + byte-buddy-agent + 1.14.11 + test + @@ -90,6 +114,11 @@ org.sonarsource.scanner.maven sonar-maven-plugin 3.10.0.2594 + + + be/sddevelopment/**/*TestUtils*/ + + @@ -154,7 +183,7 @@ - be/sddevelopment/commons/constants/**/*.class + be/sddevelopment/**/*TestUtils*/ diff --git a/src/main/java/be/sddevelopment/validation/Checked.java b/src/main/java/be/sddevelopment/validation/Checked.java deleted file mode 100644 index 0ec5ad0..0000000 --- a/src/main/java/be/sddevelopment/validation/Checked.java +++ /dev/null @@ -1,51 +0,0 @@ -package be.sddevelopment.validation; - -import java.util.Optional; - -import static be.sddevelopment.validation.Evaluation.FAIL; -import static be.sddevelopment.validation.Evaluation.PASS; -import static java.util.Optional.ofNullable; - -/** - *

    Checked class.

    - *

    - * Represents the result of evaluating an object of any type. - * The result of said evaluation is represented by a {@link EvaluationRationale}. - * The original object is maintained as well, to allow for further processing, and flexibility in dealing with various validation states. - * - * Intended as a monadic structure to allow for fluent programming with the result of a validation. - * - * @author stijnd - * @version 1.0.0-SNAPSHOT - */ -public final class Checked { - - private final T data; - private final EvaluationRationale rationale = new EvaluationRationale(); - - private Checked(T toValidate) { - this.data = toValidate; - } - - public boolean isValid() { - return this.rationale.details() - .stream() - .map(Reason::result) - .noneMatch(FAIL::equals); - } - - Checked applyRule(ValidationRule tValidationRule) { - var result = tValidationRule.rule().test(this.data); - this.rationale.add(new Reason(tValidationRule.description(), result ? PASS : FAIL)); - return this; - } - - public static Checked of(T toValidate) { - return new Checked<>(toValidate); - } - - public Optional rationale() { - return ofNullable(this.rationale); - } - -} diff --git a/src/main/java/be/sddevelopment/validation/Constrainable.java b/src/main/java/be/sddevelopment/validation/Constrainable.java new file mode 100644 index 0000000..7c0ddf7 --- /dev/null +++ b/src/main/java/be/sddevelopment/validation/Constrainable.java @@ -0,0 +1,66 @@ +package be.sddevelopment.validation; + +import static be.sddevelopment.validation.ModularRuleset.emptyRules; + +/** + *

    Evaluated class.

    + *

    + * Represents the result of evaluating an object of any type. + * The result of said evaluation is represented by a {@link Rationale}. + * The original object is maintained as well, to allow for further processing, and flexibility in dealing with various validation states. + *

    + * + * Intended as a monadic structure to allow for fluent programming with the result of a validation. + * + * @author stijnd + * @version 1.0.0-SNAPSHOT + */ +public final class Constrainable { + + private final T data; + private final ModularRuleset toAdhereTo; + + private Constrainable(T toValidate, ModularRuleset toAdhereTo) { + this.data = toValidate; + this.toAdhereTo = toAdhereTo; + } + + public boolean isValid() { + return this.toAdhereTo.quickCheck(this.data).isPassing(); + } + + Constrainable adheresTo(Constraint constraint) { + return new Constrainable<>(this.data, this.toAdhereTo.toBuilder().must(constraint).done()); + } + + public static Constrainable constrain(T toConstrain) { + return constrain(toConstrain, emptyRules()); + } + + public static Constrainable constrain(T toConstrain, ModularRuleset ruleset) { + return of(toConstrain, ruleset); + } + + public static Constrainable of(T toConstrain, ModularRuleset ruleset) { + return new Constrainable<>(toConstrain, ruleset); + } + + public Rationale rationale() { + return this.toAdhereTo.assess(this.data); + } + + public void feedback(String errorMessage) throws InvalidObjectException { + var rationale = this.toAdhereTo.check(this.data); + if (rationale.isFailing()) { + throw new InvalidObjectException(errorMessage, this.rationale()); + } + } + + public void guard() throws InvalidObjectException { + var rationale = this.toAdhereTo.quickCheck(this.data); + if (rationale.isFailing()) { + throw new InvalidObjectException("Object is invalid", rationale); + } + } + +} diff --git a/src/main/java/be/sddevelopment/validation/Constraint.java b/src/main/java/be/sddevelopment/validation/Constraint.java new file mode 100644 index 0000000..fcd30e3 --- /dev/null +++ b/src/main/java/be/sddevelopment/validation/Constraint.java @@ -0,0 +1,71 @@ +package be.sddevelopment.validation; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; + +import java.util.function.Predicate; + +import static be.sddevelopment.validation.Evaluation.FAIL; +import static be.sddevelopment.validation.Evaluation.PASS; + +/** + *

    ValidationRule class.

    + * Represents a single validation rule, which can be applied to an object of any type. + * + * @param rule a method that accepts an object of type T and returns a boolean that indicates if it matches the validation criterium. + * @param description textual description of the validation rule + * @param type of the object onto which the rule can be applied + */ +public record Constraint(Predicate rule, String description) { + + public static ValidationRuleBuilder ruleFor(Class ignoredClass) { + return new ValidationRuleBuilder<>(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + + if (o == null || getClass() != o.getClass()) return false; + + Constraint that = (Constraint) o; + + return new EqualsBuilder() + .append(description, that.description) + .isEquals(); + } + + @Override + public int hashCode() { + return new HashCodeBuilder(17, 37) + .append(description) + .toHashCode(); + } + + public Reason applyTo(T toTest) { + var result = this.rule().test(toTest); + return new Reason(this.description(), result ? PASS : FAIL); + } + + public static class ValidationRuleBuilder { + private String description; + private Predicate toCheck; + + private ValidationRuleBuilder() { + } + + public Constraint done() { + return new Constraint<>(toCheck, this.description); + } + + public ValidationRuleBuilder requires(Predicate predicate) { + this.toCheck = predicate; + return this; + } + + public ValidationRuleBuilder describedAs(String description) { + this.description = description; + return this; + } + } +} diff --git a/src/main/java/be/sddevelopment/validation/EvaluationRationale.java b/src/main/java/be/sddevelopment/validation/EvaluationRationale.java deleted file mode 100644 index 9ea0ffb..0000000 --- a/src/main/java/be/sddevelopment/validation/EvaluationRationale.java +++ /dev/null @@ -1,16 +0,0 @@ -package be.sddevelopment.validation; - -import java.util.ArrayList; -import java.util.List; - -public class EvaluationRationale { - private final List details = new ArrayList<>(); - - public List details() { - return details; - } - - public void add(Reason reason) { - this.details.add(reason); - } -} diff --git a/src/main/java/be/sddevelopment/validation/InvalidObjectException.java b/src/main/java/be/sddevelopment/validation/InvalidObjectException.java new file mode 100644 index 0000000..05d521a --- /dev/null +++ b/src/main/java/be/sddevelopment/validation/InvalidObjectException.java @@ -0,0 +1,26 @@ +package be.sddevelopment.validation; + +import java.util.ArrayList; +import java.util.List; + +import static java.lang.String.format; + +public class InvalidObjectException extends Exception { + + private final List errors = new ArrayList<>(); + + public InvalidObjectException(String errorMessage, Rationale rationale) { + super(errorMessage); + rationale.details() + .stream().map(this::errorFromReason) + .forEach(this.errors::add); + } + + private String errorFromReason(Reason reason) { + return format("%s: [%s]", reason.result().name(), reason.rationale()); + } + + public List errors() { + return new ArrayList<>(this.errors); + } +} diff --git a/src/main/java/be/sddevelopment/validation/ModularRuleset.java b/src/main/java/be/sddevelopment/validation/ModularRuleset.java new file mode 100644 index 0000000..2746845 --- /dev/null +++ b/src/main/java/be/sddevelopment/validation/ModularRuleset.java @@ -0,0 +1,85 @@ +package be.sddevelopment.validation; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; + +import static be.sddevelopment.validation.Rationale.rationaleWithReasons; +import static java.util.Collections.emptyList; + +public final class ModularRuleset { + + private final List> rules = new ArrayList<>(); + + private ModularRuleset(List> rules) { + this.rules.addAll(rules); + } + + public Constrainable constrain(T toValidate) { + return Constrainable.of(toValidate, this); + } + + public Rationale assess(T toValidate) { + return check(toValidate); + } + + public Rationale check(T data) { + return rationaleWithReasons(rules.stream() + .map(rule -> rule.applyTo(data)) + .toList()); + } + + public Rationale quickCheck(T data) { + var result = Rationale.emptyRationale(); + for (var rule : this.rules) { + var reason = rule.applyTo(data); + result.add(reason); + if (reason.isFailing()) { + return result; + } + } + return result; + } + + public static ModularValidatorBuilder aValid(Class ignoredClazz) { + return new ModularValidatorBuilder<>(); + } + + public ModularValidatorBuilder toBuilder() { + return new ModularValidatorBuilder().withRules(this.rules); + } + + public static ModularRuleset emptyRules() { + return new ModularRuleset<>(emptyList()); + } + + public static class ModularValidatorBuilder { + + private final List> rules = new ArrayList<>(); + + private ModularValidatorBuilder() { + } + + public ModularValidatorBuilder must(Predicate requirement, String description) { + return must(new Constraint<>(requirement, description)); + } + + public ModularValidatorBuilder must(Constraint rule) { + this.rules.add(rule); + return this; + } + + public ModularValidatorBuilder withRules(List> rules) { + this.rules.addAll(rules); + return this; + } + + public ModularRuleset iHaveSpoken() { + return done(); + } + + public ModularRuleset done() { + return new ModularRuleset<>(this.rules); + } + } +} diff --git a/src/main/java/be/sddevelopment/validation/ModularValidator.java b/src/main/java/be/sddevelopment/validation/ModularValidator.java deleted file mode 100644 index 08cb349..0000000 --- a/src/main/java/be/sddevelopment/validation/ModularValidator.java +++ /dev/null @@ -1,52 +0,0 @@ -package be.sddevelopment.validation; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Predicate; - -public final class ModularValidator { - - private final List> rules = new ArrayList<>(); - - private ModularValidator(List> rules) { - this.rules.addAll(rules); - } - - public Checked evaluate(T toValidate) { - Checked accumulator = Checked.of(toValidate); - rules.forEach(accumulator::applyRule); - return accumulator; - } - - public static ModularValidatorBuilder aValid(Class ignoredClazz) { - return new ModularValidatorBuilder<>(); - } - - public static class ModularValidatorBuilder { - private final List> rules = new ArrayList<>(); - - private ModularValidatorBuilder() { - } - - public ModularValidatorBuilder must(Predicate requirement, String description) { - return must(new ValidationRule<>(requirement, description)); - } - - public ModularValidatorBuilder must(ValidationRule rule) { - this.rules.add(rule); - return this; - } - - public ModularValidator build() { - return new ModularValidator<>(rules); - } - - public ModularValidator iHaveSpoken() { - return done(); - } - - public ModularValidator done() { - return new ModularValidator<>(this.rules); - } - } -} diff --git a/src/main/java/be/sddevelopment/validation/Rationale.java b/src/main/java/be/sddevelopment/validation/Rationale.java new file mode 100644 index 0000000..d6de6fa --- /dev/null +++ b/src/main/java/be/sddevelopment/validation/Rationale.java @@ -0,0 +1,42 @@ +package be.sddevelopment.validation; + +import java.util.ArrayList; +import java.util.List; + +public class Rationale { + private final List details = new ArrayList<>(); + + private Rationale() { + } + + private Rationale(List reasons) { + this(); + this.details.addAll(reasons); + } + + public static Rationale emptyRationale() { + return new Rationale(); + } + + public static Rationale rationaleWithReasons(List reasons) { + return new Rationale(reasons); + } + + public List details() { + return details; + } + + public Rationale add(Reason reason) { + this.details.add(reason); + return this; + } + + public boolean isPassing() { + return this.details.stream() + .allMatch(Reason::isPassing); + } + + public boolean isFailing() { + return !this.isPassing(); + } +} diff --git a/src/main/java/be/sddevelopment/validation/Reason.java b/src/main/java/be/sddevelopment/validation/Reason.java index 89faabc..bff9141 100644 --- a/src/main/java/be/sddevelopment/validation/Reason.java +++ b/src/main/java/be/sddevelopment/validation/Reason.java @@ -5,9 +5,9 @@ /** *

    Reason class.

    - * Represents the evaluation of a single {@link ValidationRule}, and will be included in a {@link EvaluationRationale}. + * Represents the evaluation of a single {@link Constraint}, and will be included in a {@link Rationale}. * Each reason will tell the user whether a particular rule passed or failed, and will include a description (aka "rationale") to explain why a certain result was achieved. - * + *

    * This class is immutable, and provides static factory methods to simplify usage, and increase readability.. * * @version 1.0.0-SNAPSHOT @@ -23,4 +23,11 @@ public static Reason failed(String rationale) { return new Reason(rationale, FAIL); } + public boolean isPassing() { + return PASS == this.result; + } + + public boolean isFailing() { + return FAIL == this.result; + } } diff --git a/src/main/java/be/sddevelopment/validation/ValidationRule.java b/src/main/java/be/sddevelopment/validation/ValidationRule.java deleted file mode 100644 index fbe02be..0000000 --- a/src/main/java/be/sddevelopment/validation/ValidationRule.java +++ /dev/null @@ -1,14 +0,0 @@ -package be.sddevelopment.validation; - -import java.util.function.Predicate; - -/** - *

    ValidationRule class.

    - * Represents a single validation rule, which can be applied to an object of any type. - * - * @param rule a method that accepts an object of type T and returns a boolean that indicates if it matches the validation criterium. - * @param description textual description of the validation rule - * @param type of the object onto which the rule can be applied - */ -public record ValidationRule(Predicate rule, String description) { -} diff --git a/src/main/java/be/sddevelopment/validation/Validations.java b/src/main/java/be/sddevelopment/validation/Validations.java index 6ef461e..a9b7198 100644 --- a/src/main/java/be/sddevelopment/validation/Validations.java +++ b/src/main/java/be/sddevelopment/validation/Validations.java @@ -1,5 +1,7 @@ package be.sddevelopment.validation; +import org.apache.commons.lang3.StringUtils; + import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; @@ -14,26 +16,30 @@ */ public final class Validations { - private Validations() throws IllegalAccessException { - throw new IllegalAccessException("Utility classes (containing shared methods or constants) should not be instantiated."); + private Validations() { + throw new UnsupportedOperationException("Utility classes (containing shared methods or constants) should not be instantiated."); } /** *

    haveNonNullField.

    * * @param extractor a {@link java.util.function.Function} object - * @param a S class + * @param a S class * @return a {@link java.util.function.Predicate} object */ public static Predicate haveNonNullField(Function extractor) { return not(haveNullField(extractor)); } + public static Predicate haveNonEmpty(Function extractor) { + return extractor.andThen(StringUtils::isNotBlank)::apply; + } + /** *

    haveNullField.

    * * @param extractor a {@link java.util.function.Function} object - * @param a S class + * @param a S class * @return a {@link java.util.function.Predicate} object */ public static Predicate haveNullField(Function extractor) { diff --git a/src/test/java/be/sddevelopment/validation/CheckedTest.java b/src/test/java/be/sddevelopment/validation/CheckedTest.java deleted file mode 100644 index dd0d555..0000000 --- a/src/test/java/be/sddevelopment/validation/CheckedTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package be.sddevelopment.validation; - -import net.serenitybdd.junit5.SerenityJUnit5Extension; -import org.assertj.core.api.WithAssertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import java.util.function.Predicate; - -import static be.sddevelopment.validation.CheckedTestUtils.invalid; -import static be.sddevelopment.validation.CheckedTestUtils.valid; -import static be.sddevelopment.validation.Reason.failed; -import static be.sddevelopment.validation.Reason.passed; - -@ExtendWith(SerenityJUnit5Extension.class) -class CheckedTest implements WithAssertions { - - @Test - void givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered() { - var contentToCheck = "This is a non empty String"; - var rule = new ValidationRule<>(Predicate.not(String::isBlank), "mustn't be blank"); - assertThat(rule.rule().test(contentToCheck)).isTrue(); - - var result = Checked.of(contentToCheck).applyRule(rule); - - assertThat(result).is(valid()); - assertThat(result.rationale()) - .isPresent().get() - .extracting(EvaluationRationale::details).asList() - .contains(passed("mustn't be blank")); - } - - @Test - void givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid() { - var empty = ""; - var rule = new ValidationRule<>(Predicate.not(String::isBlank), "mustn't be blank"); - assertThat(rule.rule().test(empty)).isFalse(); - - var result = Checked.of(empty).applyRule(rule); - - assertThat(result).is(invalid()); - assertThat(result.rationale()) - .isPresent().get() - .extracting(EvaluationRationale::details).asList() - .contains(failed("mustn't be blank")); - } -} \ No newline at end of file diff --git a/src/test/java/be/sddevelopment/validation/CheckedTestUtils.java b/src/test/java/be/sddevelopment/validation/CheckedTestUtils.java index 60ae299..3a269ab 100644 --- a/src/test/java/be/sddevelopment/validation/CheckedTestUtils.java +++ b/src/test/java/be/sddevelopment/validation/CheckedTestUtils.java @@ -10,11 +10,20 @@ private CheckedTestUtils() throws IllegalAccessException { throw new IllegalAccessException("Utility classes (containing shared methods or constants) should not be instantiated."); } - public static Condition> valid() { - return new Condition<>(Checked::isValid, "valid"); + public static Condition> valid() { + return new Condition<>(Constrainable::isValid, "valid"); } - public static Condition> invalid() { - return new Condition<>(Predicate.not(Checked::isValid), "invalid"); + public static Condition> invalid() { + return new Condition<>(Predicate.not(Constrainable::isValid), "invalid"); } + + public static Condition passing() { + return new Condition<>(Reason::isPassing, "is passing"); + } + + public static Condition failing() { + return new Condition<>(Predicate.not(Reason::isPassing), "is failing"); + } + } diff --git a/src/test/java/be/sddevelopment/validation/ConstrainableTest.java b/src/test/java/be/sddevelopment/validation/ConstrainableTest.java new file mode 100644 index 0000000..0b0d25d --- /dev/null +++ b/src/test/java/be/sddevelopment/validation/ConstrainableTest.java @@ -0,0 +1,90 @@ +package be.sddevelopment.validation; + +import net.serenitybdd.junit5.SerenityJUnit5Extension; +import org.assertj.core.api.WithAssertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.platform.commons.util.StringUtils; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.function.Predicate; + +import static be.sddevelopment.validation.CheckedTestUtils.invalid; +import static be.sddevelopment.validation.CheckedTestUtils.valid; +import static be.sddevelopment.validation.Reason.failed; +import static be.sddevelopment.validation.Reason.passed; +import static be.sddevelopment.validation.Validations.haveNonEmpty; + +@ExtendWith({SerenityJUnit5Extension.class, MockitoExtension.class}) +class ConstrainableTest implements WithAssertions { + + @Test + void givenCheckedWithData_whenApplyingRule_itsEvaluationIsRemembered() { + var contentToCheck = "This is a non empty String"; + var rule = new Constraint<>(Predicate.not(String::isBlank), "mustn't be blank"); + assertThat(rule.rule().test(contentToCheck)).isTrue(); + + var result = Constrainable.constrain(contentToCheck).adheresTo(rule); + + assertThat(result).is(valid()); + assertThat(result.rationale()) + .extracting(Rationale::details).asList() + .contains(passed("mustn't be blank")); + } + + @Test + void givenCheckedWithData_andInvalidData_whenApplyingRule_itIsEvaluatedAsInvalid() { + var empty = ""; + var rule = new Constraint<>(Predicate.not(String::isBlank), "mustn't be blank"); + assertThat(rule.rule().test(empty)).isFalse(); + + var result = Constrainable.constrain(empty).adheresTo(rule); + + assertThat(result).is(invalid()); + assertThat(result.rationale()) + .extracting(Rationale::details).asList() + .contains(failed("mustn't be blank")); + } + + @Test + void feedback_throwsAValidationException_givenInvalidSourceData() { + var checked = Constrainable.constrain("") + .adheresTo(new Constraint<>(StringUtils::isNotBlank, "mustn't be blank")); + assertThat(checked).is(invalid()); + + assertThatExceptionOfType(InvalidObjectException.class) + .isThrownBy(() -> checked.feedback("This is an invalid object")) + .withMessage("This is an invalid object"); + } + + @Test + void feedback_hasNoEffect_givenValidSourceData() { + var checked = Constrainable.constrain("I am a real String") + .adheresTo(new Constraint<>(StringUtils::isNotBlank, "mustn't be blank")); + assertThat(checked).is(valid()); + + assertThatCode(() -> checked.feedback("This is an invalid object")) + .doesNotThrowAnyException(); + } + + @Test + void guard_failsFastWhenInvalid() { + + var rules = ModularRuleset.aValid(ToBeConstained.class) + .must(haveNonEmpty(ToBeConstained::firstName), "have a first name") + .must(haveNonEmpty(ToBeConstained::lastName), "have a last name") + .must(haveNonEmpty(ToBeConstained::dateOfBirth), "have a year of birth") + .done(); + + var constrainedRecord = rules.constrain(new ToBeConstained("", "", "")); + + assertThatExceptionOfType(InvalidObjectException.class) + .isThrownBy(constrainedRecord::guard) + .extracting(InvalidObjectException::errors).asList() + .containsExactly("FAIL: [have a first name]"); + } + + private record ToBeConstained(String firstName, String lastName, String dateOfBirth) { + } + +} \ No newline at end of file diff --git a/src/test/java/be/sddevelopment/validation/ConstraintTest.java b/src/test/java/be/sddevelopment/validation/ConstraintTest.java new file mode 100644 index 0000000..fbdbb46 --- /dev/null +++ b/src/test/java/be/sddevelopment/validation/ConstraintTest.java @@ -0,0 +1,77 @@ +package be.sddevelopment.validation; + +import org.assertj.core.api.WithAssertions; +import org.junit.jupiter.api.Test; +import org.junit.platform.commons.util.StringUtils; + +import java.util.List; +import java.util.function.Predicate; + +import static be.sddevelopment.validation.CheckedTestUtils.failing; +import static be.sddevelopment.validation.CheckedTestUtils.invalid; +import static be.sddevelopment.validation.Constraint.ruleFor; +import static be.sddevelopment.validation.Reason.failed; +import static be.sddevelopment.validation.Reason.passed; + +class ConstraintTest implements WithAssertions { + + @Test + void aValidationRule_canBeBuildAndUsed_inAFluentWay() { + var rule = ruleFor(String.class) + .describedAs("We rule") + .requires(StringUtils::isNotBlank) + .done(); + + assertThat(rule.applyTo("")).is(failing()); + } + + @Test + void rules_areChainable() { + var rule = ruleFor(String.class) + .describedAs("Must be filled in") + .requires(StringUtils::isNotBlank) + .done(); + var otherRule = ruleFor(String.class) + .describedAs("Be polite") + .requires(Predicate.not(List.of("Idiot", "Fracking", "Noob")::contains)) + .done(); + + var result = Constrainable.constrain("Idiot") + .adheresTo(rule) + .adheresTo(otherRule); + + assertThat(result).is(invalid()) + .extracting(Constrainable::rationale) + .extracting(Rationale::details).asList() + .contains(passed("Must be filled in"), failed("Be polite")); + } + + @Test + void givenTwoIdenticalRules_theyAreConsideredEqual() { + var rule = ruleFor(String.class) + .describedAs("We rule") + .requires(StringUtils::isNotBlank) + .done(); + var other = ruleFor(String.class) + .describedAs("We rule") + .requires(StringUtils::isNotBlank) + .done(); + + assertThat(rule).isEqualTo(other); + assertThat(other).isEqualTo(rule); + } + + @Test + void givenTwoIdenticalRules_theirHashesAreIdentical() { + var rule = ruleFor(String.class) + .describedAs("We rule") + .requires(StringUtils::isNotBlank) + .done(); + var other = ruleFor(String.class) + .describedAs("We rule") + .requires(StringUtils::isNotBlank) + .done(); + + assertThat(rule.hashCode()).isEqualTo(other.hashCode()); + } +} \ No newline at end of file diff --git a/src/test/java/be/sddevelopment/validation/InvalidObjectExceptionTest.java b/src/test/java/be/sddevelopment/validation/InvalidObjectExceptionTest.java new file mode 100644 index 0000000..2f5c818 --- /dev/null +++ b/src/test/java/be/sddevelopment/validation/InvalidObjectExceptionTest.java @@ -0,0 +1,30 @@ +package be.sddevelopment.validation; + +import net.serenitybdd.junit5.SerenityJUnit5Extension; +import org.assertj.core.api.WithAssertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import static be.sddevelopment.validation.Rationale.emptyRationale; +import static be.sddevelopment.validation.Reason.failed; +import static be.sddevelopment.validation.Reason.passed; + +@ExtendWith(SerenityJUnit5Extension.class) +class InvalidObjectExceptionTest implements WithAssertions { + + @Test + void invalidObjectExceptionMustContainAllErrors_givenMultipleErrors() { + var rationale = emptyRationale() + .add(passed("This is fine")) + .add(failed("The consequences will never be the same")); + + var result = new InvalidObjectException("You done goofed", rationale); + + assertThat(result).isNotNull().extracting(InvalidObjectException::getMessage).isEqualTo("You done goofed"); + assertThat(result.errors()).containsExactlyInAnyOrder( + "PASS: [This is fine]", + "FAIL: [The consequences will never be the same]" + ); + } + +} \ No newline at end of file diff --git a/src/test/java/be/sddevelopment/validation/ValidationDogfoodTest.java b/src/test/java/be/sddevelopment/validation/ValidationDogfoodTest.java new file mode 100644 index 0000000..cb02d92 --- /dev/null +++ b/src/test/java/be/sddevelopment/validation/ValidationDogfoodTest.java @@ -0,0 +1,81 @@ +package be.sddevelopment.validation; + +import net.serenitybdd.junit5.SerenityJUnit5Extension; +import org.assertj.core.api.WithAssertions; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import java.time.LocalDate; +import java.util.Objects; + +import static be.sddevelopment.validation.ModularRuleset.aValid; +import static be.sddevelopment.validation.Validations.haveNonNullField; +import static java.time.Month.MARCH; +import static java.util.Optional.ofNullable; + +/** + * Tests illustrating using the validators through close-to-real examples. + * These tests are intended to allow library developers to experience working with their own code in a practical setting, + * getting first-hand impressions on how their API design feels to their target audience. + */ +@ExtendWith(SerenityJUnit5Extension.class) +class ValidationDogfoodTest implements WithAssertions { + + @Nested + class ValidatorUsage { + @Test + void modularValidatorsMustCoverBasicUsage_givenSimpleDateBasedValidationLogic() { + var toValidate = new DateBasedDummyObject(LocalDate.of(2023, MARCH, 9)); + assertThat(toValidate).isNotNull() + .extracting(DateBasedDummyObject::localDate) + .isNotNull(); + + var notBeNull = new Constraint(Objects::nonNull, "not be null"); + var validator = aValid(DateBasedDummyObject.class) + .must(notBeNull) + .must(haveNonNullField(DateBasedDummyObject::localDate), "have a non-null local date") + .iHaveSpoken(); + + assertThat(validator.constrain(toValidate)).is(CheckedTestUtils.valid()); + } + + private record DateBasedDummyObject(LocalDate localDate) { + } + } + + @Nested + class ConstrainableUsages { + + @Test + void checkedShouldAllowForFluentUsage_whenUsingItAsAGuard_givenInvalidObject() { + var validator = aValid(DateBasedDummyObject.class) + .must(Objects::nonNull, "not be null") + .must(haveNonNullField(DateBasedDummyObject::localDate), "have a non-null local date") + .must(this::haveAName, "have a name") + .iHaveSpoken(); + var toValidate = new DateBasedDummyObject("", LocalDate.of(2023, MARCH, 9)); + assertThat(validator.constrain(toValidate)).matches(dateBasedDummyObjectConstrainable -> !dateBasedDummyObjectConstrainable.isValid()); + + var result = validator.constrain(toValidate); + + assertThatExceptionOfType(InvalidObjectException.class) + .isThrownBy(() -> result.feedback("Object should be valid")) + .withMessage("Object should be valid") + .extracting(InvalidObjectException::errors).asList() + .contains("FAIL: [have a name]"); + } + + private boolean haveAName(DateBasedDummyObject toCheck) { + return ofNullable(toCheck) + .map(DateBasedDummyObject::name) + .map(String::isBlank) + .map(empty -> !empty) + .orElse(false); + } + + private record DateBasedDummyObject(String name, LocalDate localDate) { + } + } + +} diff --git a/src/test/java/be/sddevelopment/validation/ValidationsTest.java b/src/test/java/be/sddevelopment/validation/ValidationsTest.java index 9d0f95b..f689670 100644 --- a/src/test/java/be/sddevelopment/validation/ValidationsTest.java +++ b/src/test/java/be/sddevelopment/validation/ValidationsTest.java @@ -7,8 +7,33 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import java.lang.reflect.Constructor; +import java.lang.reflect.Modifier; + +import static org.junit.platform.commons.util.ReflectionUtils.makeAccessible; +import static org.junit.platform.commons.util.ReflectionUtils.newInstance; + @ExtendWith(SerenityJUnit5Extension.class) class ValidationsTest implements WithAssertions { + + /* + * This test is not strictly necessary, but it's a good way to document the fact that the class is not instantiatable. + * In addition, it stops the coverage metrics from complaining about it. + */ + @Test + void utilityClassesShouldNotBeInstantiatable() throws NoSuchMethodException { + var constructor = Validations.class.getDeclaredConstructor(); + assertThat(constructor).isNotNull() + .extracting(Constructor::getModifiers) + .matches(Modifier::isPrivate); + + makeAccessible(constructor); + + assertThatExceptionOfType(UnsupportedOperationException.class) + .isThrownBy(() -> newInstance(Validations.class)) + .withMessage("Utility classes (containing shared methods or constants) should not be instantiated."); + } + @Test @Given("an Object with a null field, having a non-null field predicate") @Then("validation fails") diff --git a/src/test/java/be/sddevelopment/validation/ValidatorDogfoodTest.java b/src/test/java/be/sddevelopment/validation/ValidatorDogfoodTest.java deleted file mode 100644 index bac59cf..0000000 --- a/src/test/java/be/sddevelopment/validation/ValidatorDogfoodTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package be.sddevelopment.validation; - -import net.serenitybdd.junit5.SerenityJUnit5Extension; -import org.assertj.core.api.WithAssertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import java.time.LocalDate; -import java.util.Objects; - -import static be.sddevelopment.validation.ModularValidator.aValid; -import static be.sddevelopment.validation.Validations.haveNonNullField; -import static java.time.Month.MARCH; - -/** - * Tests illustrating using the validators through close-to-real examples. - * These tests are intended to allow library developers to experience working with their own code in a practical setting, - * getting first-hand impressions on how their API design feels to their target audience. - */ -@ExtendWith(SerenityJUnit5Extension.class) -class ValidatorDogfoodTest implements WithAssertions { - - @Test - void modularValidatorsMustCoverBasicUsage_givenSimpleDateBasedValidationLogic() { - var toValidate = new DateBasedDummyObject(LocalDate.of(2023, MARCH, 9)); - assertThat(toValidate).isNotNull() - .extracting(DateBasedDummyObject::localDate) - .isNotNull(); - - var notBeNull = new ValidationRule(Objects::nonNull, "not be null"); - var validator = aValid(DateBasedDummyObject.class) - .must(notBeNull) - .must(haveNonNullField(DateBasedDummyObject::localDate), "have a non-null local date") - .iHaveSpoken(); - - assertThat(validator.evaluate(toValidate)).is(CheckedTestUtils.valid()); - } - - private record DateBasedDummyObject(LocalDate localDate) { - } -}