public void ConstraintsAreEqualWhenPropertiesAreEqual() { // arrange var first = ExpectedConstraints.CreateOneToOne <Foo, Bar>(f => f.Bar, b => b.Foo); var second = ExpectedConstraints.CreateOneToOne <Foo, Bar>(x => x.Bar, x => x.Foo); // act and assert first.Should().Be(second); }
public void ConstraintsAreEqualWhenPropertiesAreEqual() { // arrange var first = ExpectedConstraints.CreateForeignKey <Foo, Bar, int>(f => f.Bar, f => f.BarId, b => b.Id); var second = ExpectedConstraints.CreateForeignKey <Foo, Bar, int>(x => x.Bar, x => x.BarId, x => x.Id); // act and assert first.Should().Be(second); first.GetHashCode().Should().Be(second.GetHashCode()); }
public void SetsInversePropertyOnDerivedGeneratedProxy() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateOneToOne <Foo, Bar>(f => f.Bar, b => b.Foo)); var foo = fixture.Create <Faz>(); // act var bar = foo.Bar; // assert bar.Foo.Should().BeSameAs(foo); }
public void AddsDerivedItemToGeneratedCollection() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateManyToOne <Foo, Bar>(f => f.Bar, b => b.Foos)); var foo = fixture.Create <Faz>(); // act var bar = foo.Bar; // assert bar.Foos.Should().Contain(foo); }
public void SetsNullOnGeneratedProxy() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateManyToOne <Foo, Bar>(f => f.Bar, b => b.Foos)); var foo = fixture.Create <Foo>(); // act foo.Bar = null; // assert foo.Bar.Should().BeNull(); }
public void SetsDerivedPropertyToGeneratedProxyProperty() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateForeignKey <Foo, Bar, int>(f => f.Bar, f => f.BarId, b => b.Id)); var foo = fixture.Create <Faz>(); // act var bar = foo.Bar; // assert foo.BarId.Should().Be(bar.Id); }
public void SetsInversePropertyOnProxyAddedToGeneratedCollection() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateOneToMany <Foo, Bar>(f => f.Bars, b => b.Foo)); var foo = fixture.Create <Foo>(); var bar = fixture.Create <Bar>(); // act foo.Bars.Add(bar); // assert bar.Foo.Should().BeSameAs(foo); }
public void RemovesItemFromCollection() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateManyToOne <Foo, Bar>(f => f.Bar, b => b.Foos)); var foo = fixture.Create <Foo>(); var bar = foo.Bar; // act foo.Bar = fixture.Create <Bar>(); // assert bar.Foos.Should().NotContain(foo); }
public void SetsPropertyToNull() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateForeignKey <Foo, Bar, int>(f => f.Bar, f => f.BarId, b => b.Id)); var foo = fixture.Create <Foo>(); Bar bar = null; // act foo.Bar = bar; // assert foo.BarId.Should().Be(0); }
public void SetsInversePropertyOnExternalCollection() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateOneToMany <Foo, Bar>(f => f.Bars, b => b.Foo)); var foo = fixture.Create <Foo>(); // act foo.Bars = fixture.Create <ICollection <Bar> >(); // assert foreach (var bar in foo.Bars) { bar.Foo.Should().BeSameAs(foo); } }
public void AddsItemToDerivedGeneratedCollection() { // arrange var fixture = IntegrationTest.GetFixture(ExpectedConstraints.CreateManyToMany <Foo, Bar>(f => f.Bars, b => b.Foos)); var foo = fixture.Create <Faz>(); // act var bars = foo.Bars; // assert foreach (var bar in bars) { bar.Foos.Should().Contain(foo); } }
public void ConstraintsShouldBeGenerated() { // arrange var expected = new IPropertyConstraint[] { ExpectedConstraints.CreateOneToMany <User, Post>(u => u.Posts, p => p.Poster), ExpectedConstraints.CreateManyToOne <Post, User>(p => p.Poster, u => u.Posts), ExpectedConstraints.CreateOneToOne <User, ContactDetails>(u => u.ContactDetails, c => c.User), ExpectedConstraints.CreateOneToOne <ContactDetails, User>(c => c.User, u => u.ContactDetails), ExpectedConstraints.CreateForeignKey <Post, User, int>(p => p.Poster, p => p.PosterId, u => u.Id), ExpectedConstraints.CreateForeignKey <ContactDetails, User, int>(c => c.User, c => c.UserId, u => u.Id) }; // act var metadata = GetMetadata(); // assert metadata.Constraints.Should().BeEquivalentTo(expected); }