public void Dependency() { var left = new LeftBuilder(this.Session).Build(); var middle = new MiddleBuilder(this.Session).Build(); var right = new RightBuilder(this.Session).Build(); left.Middle = middle; middle.Right = right; var derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(1, left.DerivationCount); Assert.Equal(1, middle.DerivationCount); Assert.Equal(1, right.DerivationCount); left.Counter += 1; middle.Counter += 1; right.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(2, left.DerivationCount); Assert.Equal(2, middle.DerivationCount); Assert.Equal(2, right.DerivationCount); middle.Counter += 1; left.Counter += 1; right.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(3, left.DerivationCount); Assert.Equal(3, middle.DerivationCount); Assert.Equal(3, right.DerivationCount); right.Counter += 1; middle.Counter += 1; left.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(4, left.DerivationCount); Assert.Equal(4, middle.DerivationCount); Assert.Equal(4, right.DerivationCount); right.Counter += 1; left.Counter += 1; middle.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(5, left.DerivationCount); Assert.Equal(5, middle.DerivationCount); Assert.Equal(5, right.DerivationCount); left.Counter += 1; middle.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(6, left.DerivationCount); Assert.Equal(6, middle.DerivationCount); Assert.Equal(6, right.DerivationCount); middle.Counter += 1; left.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(7, left.DerivationCount); Assert.Equal(7, middle.DerivationCount); Assert.Equal(7, right.DerivationCount); right.Counter += 1; middle.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(8, left.DerivationCount); Assert.Equal(8, middle.DerivationCount); Assert.Equal(8, right.DerivationCount); middle.Counter += 1; right.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(9, left.DerivationCount); Assert.Equal(9, middle.DerivationCount); Assert.Equal(9, right.DerivationCount); middle.Counter += 1; derivation = new Derivation(this.Session, new DerivationConfig { ThrowExceptionOnCycleDetected = true }); derivation.Derive(); this.Session.Commit(); Assert.Equal(10, left.DerivationCount); Assert.Equal(10, middle.DerivationCount); Assert.Equal(10, right.DerivationCount); }
public void Dependency() { var left = new LeftBuilder(this.Session).Build(); var middle = new MiddleBuilder(this.Session).Build(); var right = new RightBuilder(this.Session).Build(); left.Middle = middle; middle.Right = right; var derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(1, left.DerivationCount); Assert.Equal(1, middle.DerivationCount); Assert.Equal(1, right.DerivationCount); left.Counter += 1; middle.Counter += 1; right.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(2, left.DerivationCount); Assert.Equal(2, middle.DerivationCount); Assert.Equal(2, right.DerivationCount); middle.Counter += 1; left.Counter += 1; right.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(3, left.DerivationCount); Assert.Equal(3, middle.DerivationCount); Assert.Equal(3, right.DerivationCount); right.Counter += 1; middle.Counter += 1; left.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(4, left.DerivationCount); Assert.Equal(4, middle.DerivationCount); Assert.Equal(4, right.DerivationCount); right.Counter += 1; left.Counter += 1; middle.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(5, left.DerivationCount); Assert.Equal(5, middle.DerivationCount); Assert.Equal(5, right.DerivationCount); left.Counter += 1; middle.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(6, left.DerivationCount); Assert.Equal(6, middle.DerivationCount); Assert.Equal(6, right.DerivationCount); middle.Counter += 1; left.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(7, left.DerivationCount); Assert.Equal(7, middle.DerivationCount); Assert.Equal(7, right.DerivationCount); right.Counter += 1; middle.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(8, left.DerivationCount); Assert.Equal(8, middle.DerivationCount); Assert.Equal(8, right.DerivationCount); middle.Counter += 1; right.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(9, left.DerivationCount); Assert.Equal(9, middle.DerivationCount); Assert.Equal(9, right.DerivationCount); middle.Counter += 1; derivation = this.DerivationService.CreateDerivation(this.Session); derivation.Derive(); this.Session.Commit(); Assert.Equal(10, left.DerivationCount); Assert.Equal(10, middle.DerivationCount); Assert.Equal(10, right.DerivationCount); }