public void Initialize() { XmlConfigurator.Configure(); this.attributeDecorator = new StandardAttributeDecorator(attributeDecorator => null, null); this.subject = new SubjectClass(); this.recordReferenceMock = new Mock<RecordReference>(null, this.attributeDecorator); this.peers = new List<AbstractRepositoryOperation>(); this.serviceMock = new Mock<InsertRecordService>(this.recordReferenceMock.Object, this.attributeDecorator, true); this.insertRecord = new InsertRecord(this.serviceMock.Object, this.recordReferenceMock.Object, this.peers, this.attributeDecorator); this.breakerMock = new Mock<CircularReferenceBreaker>(); this.writePrimitivesMock = new Mock<IWritePrimitives>(); this.recordReferenceMock.Setup(m => m.RecordObject).Returns(this.subject); this.recordReferenceMock.Setup(m => m.RecordType).Returns(this.subject.GetType()); }
public void WriteOperationOrder_Test() { // Arrange var orderedOpertations = new AbstractRepositoryOperation[2]; var secondObject = new SubjectClass(); var secondrecordReferenceMock = new Mock<RecordReference>(null, this.attributeDecorator); secondrecordReferenceMock.Setup(m => m.RecordObject).Returns(secondObject); secondrecordReferenceMock.Setup(m => m.RecordType).Returns(secondObject.GetType()); var secondInsertRecord = new InsertRecord(this.serviceMock.Object, secondrecordReferenceMock.Object, this.peers, this.attributeDecorator); var primaryKeyOperations = new List<InsertRecord> { secondInsertRecord }; var regularColumns = new List<Column>(); var foreignKeyColumns = new List<ExtendedColumnSymbol>(); this.serviceMock.Setup(m => m.GetPrimaryKeyOperations(this.peers)).Returns(primaryKeyOperations); this.serviceMock.Setup(m => m.GetRegularColumns(this.writePrimitivesMock.Object)).Returns(regularColumns); this.serviceMock.Setup(m => m.GetForeignKeyColumns(primaryKeyOperations)).Returns(foreignKeyColumns); this.serviceMock.Setup( m => m.WritePrimaryKeyOperations(It.IsAny<IWritePrimitives>(), It.IsAny<IEnumerable<AbstractRepositoryOperation>>(), It.IsAny<CircularReferenceBreaker>(), It.IsAny<Counter>(), It.IsAny<AbstractRepositoryOperation[]>())) .Callback <IWritePrimitives, IEnumerable<AbstractRepositoryOperation>, CircularReferenceBreaker, Counter, AbstractRepositoryOperation[]>( (writer, secondPrimaryKeyOperations, breaker, secondCurrentOrder, secondOrderedOperations) => { this.serviceMock.Setup( n => n.WritePrimaryKeyOperations(It.IsAny<IWritePrimitives>(), It.IsAny<IEnumerable<InsertRecord>>(), It.IsAny<CircularReferenceBreaker>(), It.IsAny<Counter>(), It.IsAny<AbstractRepositoryOperation[]>())); secondInsertRecord.Write(breaker, writer, secondCurrentOrder, secondOrderedOperations); }); // Act this.insertRecord.Write(this.breakerMock.Object, this.writePrimitivesMock.Object, new Counter(), orderedOpertations); // Assert Assert.AreEqual(secondInsertRecord, orderedOpertations[0]); Assert.AreEqual(this.insertRecord, orderedOpertations[1]); }