public void IComplexSpecification_ReturnSelf() { ISpecification <object> sut = MockComplexSpecification.True(); var result = sut.AsComplexSpecification(); Assert.Equal(sut, result); }
public void NullCollectionLinqToEntities_NoException() { var specification = MockComplexSpecification <int> .True(); var sut = new AnySpecification <int[], int>(specification, true); var exception = Record.Exception(() => sut.IsSatisfiedBy(null)); Assert.Null(exception); }
public void NullCandidate_NoException() { var specification = MockComplexSpecification.True(); var sut = new NotSpecification <object>(specification); var exception = Record.Exception(() => sut.IsSatisfiedBy(null)); Assert.Null(exception); }
public void IComplexSpecification_ArgumentException() { var exception = Record.Exception(() => new SpecificationAdapter <object>( MockComplexSpecification.True())); Assert.NotNull(exception); Assert.IsType <ArgumentException>(exception); }
public void InvokeNull_NotRaiseException() { var specification = MockComplexSpecification.True(); var sut = new NotSpecification <object>(specification); var exception = Record.Exception(() => sut.GetExpression().Compile().Invoke(null)); Assert.Null(exception); }
public void InvokeOr_ReturnOrSpecification() { var left = MockComplexSpecification.True(); var right = MockComplexSpecification.True(); var expected = new OrSpecification <object>(left, right); var sut = Specification.Or(left, right); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeForProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>(ft => ft.Second, MockComplexSpecification <string> .True()); var sut = new MockCompositeSpecification <FakeType>().ForProperty( ft => ft.Second, MockComplexSpecification <string> .True()); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeCast_ReturnCastSpecification() { var specification = MockComplexSpecification <IEnumerable <int> > .True(); var expected = new CastSpecification <FakeType, IEnumerable <int> >(specification); var sut = new MockCompositeSpecification <FakeType>().Cast(specification); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeAll_ReturnAllSpecification() { var specification = MockComplexSpecification <int> .True(); var expected = new AllSpecification <FakeType, int>(specification, true); var sut = Specification.All <FakeType, int>(specification); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeIncorrectData_ReturnFalse(bool leftResult, bool rightResult) { var left = MockComplexSpecification.Create(leftResult); var right = MockComplexSpecification.Create(rightResult); var sut = new OrSpecification <object>(left, right); var result = sut.GetExpression().Compile().Invoke(new object()); Assert.False(result); }
public void RelatedComplexTypes_ReturnNewSpecificationAdapterObject() { ISpecification <IEnumerable <char> > sut = MockComplexSpecification <IEnumerable <char> > .True(); var result = sut.AsComplexSpecification <ChildFakeType>(); Assert.NotNull(result); Assert.NotSame(sut, result); Assert.IsType <SpecificationAdapter <ChildFakeType> >(result); }
public void AnyElementsValid_ReturnTrue <T, TType>(T candidate, Expression <Func <TType, bool> > expression) where T : IEnumerable <TType> { var specification = new MockComplexSpecification <TType>(expression); var sut = new AnySpecification <T, TType>(specification); var result = sut.IsSatisfiedBy(candidate); Assert.True(result); }
public void InvokeAndNot_ReturnAndSpecification() { var left = MockComplexSpecification.True(); var right = MockComplexSpecification.True(); var expected = new AndSpecification <object>(left, right.Not()); var sut = Specification.AndNot(left, right); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeAny_ReturnAnySpecification() { var specification = MockComplexSpecification <int> .True(); var expected = new AnySpecification <FakeType, int>(specification, true); var sut = new MockCompositeSpecification <FakeType>().Any(specification); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeNullCollectionLinqToEntities_Exception() { var specification = MockComplexSpecification <int> .True(); var sut = new AnySpecification <int[], int>(specification, true); var exception = Record.Exception(() => sut.GetExpression().Compile().Invoke(null)); Assert.NotNull(exception); Assert.IsType <ArgumentNullException>(exception); }
public void NotAnyElementsValid_ReturnFalse <T, TType>(T candidate, Expression <Func <TType, bool> > expression) where T : IEnumerable <TType> { candidate = candidate?.ToString() != "null" ? candidate : default; var specification = new MockComplexSpecification <TType>(expression); var sut = new AnySpecification <T, TType>(specification); var result = sut.IsSatisfiedBy(candidate); Assert.False(result); }
public void InvokeAllElementsValid_ReturnTrue <T, TType>(T candidate, Expression <Func <TType, bool> > expression) where T : IEnumerable <TType> { var specification = new MockComplexSpecification <TType>(expression); var sut = new AllSpecification <T, TType>(specification); var result = sut.GetExpression().Compile().Invoke(candidate); Assert.True(result); }
public void CorrectComplexSpecification_ReturnExpressionForAny() { ISpecification <string> specification = MockComplexSpecification <string> .True(); var sut = new AnySpecification <string[], string>(specification); var sutExpression = sut.GetExpression(); var result = sutExpression.ToString(); Assert.Equal(@"candidate => ((candidate != null) AndAlso candidate.Any(candidate => True))", result); }
public void InvokeRelatedTypes_NoException() { var specification = MockComplexSpecification <IEnumerable <int> > .True(); var exception = Record.Exception(() => { var sut = new AnySpecification <IEnumerable <EquatableFakeType>, EquatableFakeType>(specification); sut.GetExpression().Compile().Invoke(new EquatableFakeType[0]); }); Assert.Null(exception); }
public void InvokeIncorrectData_ReturnTrue(bool isNegatable) { var specification = !isNegatable ? MockComplexSpecification.True() : MockNegatableComplexSpecification.True(); var sut = new NotSpecification <object>(specification); var result = sut.GetExpression().Compile().Invoke(new object()); Assert.False(result); }
public void RelatedTypes_NoException() { var specification = MockComplexSpecification <IEnumerable <char> > .True(); var exception = Record.Exception(() => { var sut = new NotSpecification <ChildFakeType>(specification); sut.IsSatisfiedBy(new ChildFakeType()); }); Assert.Null(exception); }
public void InvokeOrNotProperty_ReturnPropertySpecification() { var left = MockComplexSpecification<int>.True(); var right = MockComplexSpecification<int>.True(); var expected = new PropertySpecification<FakeType, int>( ft => ft.First, new OrSpecification<int>(left, right.Not())); var sut = Specification.OrNot<FakeType, int>( ft => ft.First, left, right); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void CastCorrectSpecification_ReturnIsSatisfiedByFunction() { ISpecification <string> specification = MockComplexSpecification <string> .True(); var sut = new AnySpecification <string[], string>(specification); Func <string[], bool> expected = sut.IsSatisfiedBy; var result = (Func <string[], bool>)sut; Assert.NotNull(result); Assert.Equal(expected, result); }
public void CastCorrectSpecification_ReturnExpressionWithParameterFromSelector() { ISpecification <string> specification = MockComplexSpecification <string> .True(); var sut = new AnySpecification <string[], string>(specification); var expected = sut.GetExpression().ToString(); var sutExpression = (Expression)sut; var result = sutExpression.ToString(); Assert.Equal(expected, result); }
public void NonGenericILinqSpecification_ReturnBaseExpressionAsAbstractExpression() { ISpecification <string> specification = MockComplexSpecification <string> .True(); var sut = new AnySpecification <string[], string>(specification); var expected = sut.GetExpression().ToString(); var sutExpression = ((ILinqSpecification)sut).GetExpression(); var result = sutExpression.ToString(); Assert.Equal(expected, result); }
public void RelatedTypes_NoException() { var specification = MockComplexSpecification <IEnumerable <int> > .True(); var exception = Record.Exception(() => { var sut = new AnySpecification <IEnumerable <EquatableFakeType>, EquatableFakeType>(specification); sut.IsSatisfiedBy(new EquatableFakeType[0]); }); Assert.Null(exception); }
public void InvokeRelatedTypes_NoException() { var specification = MockComplexSpecification <IEnumerable <char> > .True(); var exception = Record.Exception(() => { var sut = new NotSpecification <ChildFakeType>(specification); sut.GetExpression().Compile().Invoke(new ChildFakeType()); }); Assert.Null(exception); }
public void InvokeCompositeAnyProperty_ReturnPropertySpecification() { var specification = MockComplexSpecification <int> .True(); var expected = new PropertySpecification <FakeType, IEnumerable <int> >( ft => ft.Fourth, new AnySpecification <IEnumerable <int>, int>(specification, true)); var sut = new MockCompositeSpecification <FakeType>().Any( ft => ft.Fourth, specification); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void AnyElementsValid_ReturnExpectedResultObject <T, TType>(T candidate, Expression <Func <TType, bool> > expression, SpecificationResult expected) where T : IEnumerable <TType> { var specification = new MockComplexSpecification <TType>(expression); var sut = new AnySpecification <T, TType>(specification); var overall = sut.IsSatisfiedBy(candidate, out var result); Assert.True(overall); Assert.Equal(expected, result, new SpecificationResultComparer()); }
public void CastCorrectSpecification_ReturnIsSatisfiedByFunction() { ISpecification <object> specification = MockComplexSpecification <object> .True(); var sut = new CastSpecification <FakeType, object>(specification); Func <FakeType, bool> expected = sut.IsSatisfiedBy; var result = (Func <FakeType, bool>)sut; Assert.NotNull(result); Assert.Equal(expected, result); }