public void CreateForRelationLookup_TableDefinition_NoSortExpression() { var classDefinition = ClassDefinitionObjectMother.CreateClassDefinitionWithTable(classType: typeof(Order), storageProviderDefinition: TestDomainStorageProviderDefinition); var relationEndPointDefinition = CreateForeignKeyEndPointDefinition(classDefinition); var oppositeTable = (TableDefinition)relationEndPointDefinition.ClassDefinition.StorageEntityDefinition; _foreignKeyStoragePropertyDefinitionStrictMock.Expect(mock => mock.SplitValueForComparison(_foreignKeyValue)).Return(_fakeComparedColumns); _foreignKeyStoragePropertyDefinitionStrictMock.Replay(); var expectedSelectedColumns = _tableDefinition.GetAllColumns(); _dbCommandBuilderFactoryStrictMock .Expect( stub => stub.CreateForSelect( Arg.Is((TableDefinition)classDefinition.StorageEntityDefinition), Arg <IEnumerable <ColumnDefinition> > .List.Equal(expectedSelectedColumns), Arg.Is(_fakeComparedColumns), Arg <IEnumerable <OrderedColumn> > .List.Equal(new OrderedColumn[0]))) .Return(_dbCommandBuilderStub); _dbCommandBuilderFactoryStrictMock.Replay(); _objectReaderFactoryStrictMock .Expect( mock => mock.CreateDataContainerReader( Arg.Is((IRdbmsStorageEntityDefinition)oppositeTable), Arg <IEnumerable <ColumnDefinition> > .List.Equal(expectedSelectedColumns))) .Return(_dataContainerReaderStub); _objectReaderFactoryStrictMock.Replay(); var result = _factory.CreateForRelationLookup(relationEndPointDefinition, _foreignKeyValue, null); _objectReaderFactoryStrictMock.VerifyAllExpectations(); _foreignKeyStoragePropertyDefinitionStrictMock.VerifyAllExpectations(); _dbCommandBuilderFactoryStrictMock.VerifyAllExpectations(); Assert.That(result, Is.TypeOf(typeof(MultiObjectLoadCommand <DataContainer>))); var dbCommandBuilderTuples = ((MultiObjectLoadCommand <DataContainer>)result).DbCommandBuildersAndReaders; Assert.That(dbCommandBuilderTuples.Length, Is.EqualTo(1)); Assert.That(dbCommandBuilderTuples[0].Item1, Is.SameAs(_dbCommandBuilderStub)); Assert.That(dbCommandBuilderTuples[0].Item2, Is.SameAs(_dataContainerReaderStub)); }
public void CreateForSingleIDLookup() { var expectedSelectedColumns = _tableDefinition1.GetAllColumns().ToArray(); var expectedComparedColumns = new[] { new ColumnValue(StoragePropertyDefinitionTestHelper.GetIDColumnDefinition(_tableDefinition1.ObjectIDProperty), _objectID1.Value) }; _dbCommandBuilderFactoryStrictMock .Stub( stub => stub.CreateForSelect( Arg.Is(_tableDefinition1), Arg <IEnumerable <ColumnDefinition> > .List.Equal(expectedSelectedColumns), Arg <IEnumerable <ColumnValue> > .List.Equal(expectedComparedColumns), Arg <IEnumerable <OrderedColumn> > .List.Equal(new OrderedColumn[0]))) .Return(_dbCommandBuilder1Stub); _objectReaderFactoryStrictMock .Expect( mock => mock.CreateDataContainerReader( Arg.Is((IRdbmsStorageEntityDefinition)_tableDefinition1), Arg <IEnumerable <ColumnDefinition> > .List.Equal(expectedSelectedColumns))) .Return(_dataContainerReader1Stub); _objectReaderFactoryStrictMock.Replay(); var result = _factory.CreateForSingleIDLookup(_objectID1); _objectReaderFactoryStrictMock.VerifyAllExpectations(); Assert.That(result, Is.TypeOf <SingleDataContainerAssociateWithIDCommand <IRdbmsProviderCommandExecutionContext> >()); var associateCommand = (SingleDataContainerAssociateWithIDCommand <IRdbmsProviderCommandExecutionContext>)result; Assert.That(associateCommand.ExpectedObjectID, Is.EqualTo(_objectID1)); Assert.That(associateCommand.InnerCommand, Is.TypeOf(typeof(SingleObjectLoadCommand <DataContainer>))); var loadCommand = ((SingleObjectLoadCommand <DataContainer>)associateCommand.InnerCommand); Assert.That(loadCommand.DbCommandBuilder, Is.SameAs(_dbCommandBuilder1Stub)); Assert.That(loadCommand.ObjectReader, Is.SameAs(_dataContainerReader1Stub)); }