Ejemplo n.º 1
0
        public void CreateForDataContainerQuery()
        {
            _dataStoragePropertyDefinitionFactoryStrictMock
            .Expect(mock => mock.CreateStoragePropertyDefinition(DomainObjectIDs.Order1))
            .Return(_property1);
            _dataStoragePropertyDefinitionFactoryStrictMock
            .Expect(mock => mock.CreateStoragePropertyDefinition(DomainObjectIDs.Order3.Value))
            .Return(_property2);
            _dataStoragePropertyDefinitionFactoryStrictMock
            .Expect(mock => mock.CreateStoragePropertyDefinition(DomainObjectIDs.Official1))
            .Return(_property3);

            var commandBuilderStub         = MockRepository.GenerateStub <IDbCommandBuilder>();
            var expectedParametersWithType = GetExpectedParametersForQueryStub();

            _dbCommandBuilderFactoryStrictMock
            .Expect(
                stub => stub.CreateForQuery(Arg.Is("statement"), Arg <IEnumerable <QueryParameterWithType> > .List.Equal(expectedParametersWithType)))
            .Return(commandBuilderStub);

            _objectReaderFactoryStrictMock.Expect(mock => mock.CreateDataContainerReader()).Return(_dataContainerReader1Stub);

            var result = _factory.CreateForDataContainerQuery(_queryStub);

            _dataStoragePropertyDefinitionFactoryStrictMock.VerifyAllExpectations();
            _dbCommandBuilderFactoryStrictMock.VerifyAllExpectations();
            _objectReaderFactoryStrictMock.VerifyAllExpectations();

            Assert.That(result, Is.TypeOf(typeof(MultiObjectLoadCommand <DataContainer>)));
            var command = ((MultiObjectLoadCommand <DataContainer>)result);

            Assert.That(command.DbCommandBuildersAndReaders.Length, Is.EqualTo(1));
            Assert.That(command.DbCommandBuildersAndReaders[0].Item1, Is.SameAs(commandBuilderStub));
            Assert.That(command.DbCommandBuildersAndReaders[0].Item2, Is.SameAs(_dataContainerReader1Stub));
        }
 public IStorageProviderCommand <IEnumerable <DataContainer>, IRdbmsProviderCommandExecutionContext> CreateForDataContainerQuery(IQuery query)
 {
     ArgumentUtility.CheckNotNull("query", query);
     return(_queryCommandFactory.CreateForDataContainerQuery(query));
 }