public void IsSatisfiedBy() { var testObject = new TestObject(); var specification = new TestObjectSpecification(); specification.IsSatisfiedBy(testObject).ShouldBeTrue(); }
public void EmptySpecificationCreatesTrueSpecification() { var testObject = new TestObject(); var specification = new TestObjectSpecification(); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void WhenSpecificationForPropertyIsEmptyOmitSpecification() { var testObject = new TestObject(); var specification = new TestObjectSpecification() .ByProperty(p => {}); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void WhenSpecificationForCollectionAllIsEmptyOmitSpecification() { var testObject = new TestObject(); var specification = new TestObjectSpecification() .CollectionAll(p => { }); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void WhereAddsSingleSpecification() { var testObject = new TestObject() { BooleanProperty = true }; var specification = new TestObjectSpecification().BooleanProperty(true); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void NotNegateSpecification() { var testObject = new TestObject() { BooleanProperty = false }; var specification = new TestObjectSpecification() .Not(p => p.BooleanProperty(true)); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void AllowsApplySpecificationForDerivedObjects() { var testObject = new DerivedFromTestObject() { AdditionalProperty = true }; var specification = new TestObjectSpecification() .ByDerived(p => p.AdditionalProperty(true)); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void OrNotThrowsWhenSpecificationIsEmpty() { var testObject = new TestObject() { BooleanProperty1 = true }; var specification = new TestObjectSpecification(); Assert.Throws <Exception>(() => { specification.OrNot(or => or.BooleanProperty1(false)); }); }
public void OrNotCombineSpecificationsByNegatedDisjunction() { var testObject = new TestObject() { BooleanProperty = false, BooleanProperty1 = true }; var specification = new TestObjectSpecification() .BooleanProperty(true).OrNot(or => or.BooleanProperty1(false)); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void WhereCombineSpecificationsByConjunction() { var testObject = new TestObject() { BooleanProperty = true, BooleanProperty1 = true }; var specification = new TestObjectSpecification() .BooleanProperty(true) .BooleanProperty1(true); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void OrNotWithManyParametersCombinePreviousWithExistingSpecificationByByNegatedConjunction() { var testObject = new TestObject() { BooleanProperty = false, BooleanProperty1 = true }; var specification = new TestObjectSpecification() .BooleanProperty(false) .OrNot(or => or.BooleanProperty1(false), or => or.BooleanProperty1(false)); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void AllowsPropertyToBeFilteredBySpecification() { var testObject = new TestObject() { Property = new TestObject() { BooleanProperty = true } }; var specification = new TestObjectSpecification() .ByProperty(p => p.BooleanProperty(true)); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }
public void AllowsCollectionToBeFilteredBySpecificationWithAnyOperator() { var testObject = new TestObject() { Collection = new List <TestObject>() { new TestObject() { BooleanProperty = true } } }; var specification = new TestObjectSpecification() .CollectionAny(p => p.BooleanProperty(true)); var expectedResult = true; ExpressionSpecificationTester.TestSpecification(specification, testObject, expectedResult); }