Esempio n. 1
0
		public void ItShouldReturnTheCorrectCompositeSpecification(IFixture fixture)
		{
			// Arrange
			var lhsSpec = fixture.Create<ISpecification<DateTime>>();
			A.CallTo(() => lhsSpec.ToString()).Returns("LHS Spec");

			var rhsSpec = fixture.Create<ISpecification<DateTime>>();
			A.CallTo(() => rhsSpec.ToString()).Returns("RHS Spec");

			var additional = new Schedule(rhsSpec);
			var sut = new Schedule(lhsSpec);

			var likness = lhsSpec.AsSource()
								.OfLikeness<OrSpecification<DateTime>>()
								.With(x => x.LHS).EqualsWhen((single, composite) => composite.LHS == lhsSpec)
								.With(x => x.RHS).EqualsWhen((single, composite) => composite.RHS == rhsSpec);

			// Act
			var result = sut.And(additional);

			// Assert
			result.Should().NotBeNull();
			result.Content.Should().NotBeNull();
			result.Content.Should().BeOfType<OrSpecification<DateTime>>();

			likness.ShouldEqual(result.Content.As<OrSpecification<DateTime>>());
		}