예제 #1
0
        public void CreateForCustomQuery()
        {
            _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.CreateResultRowReader()).Return(_resultRowReaderStub);

            var result = _factory.CreateForCustomQuery(_queryStub);

            Assert.That(result, Is.TypeOf(typeof(MultiObjectLoadCommand <IQueryResultRow>)));
            var command = ((MultiObjectLoadCommand <IQueryResultRow>)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(_resultRowReaderStub));
        }
 public IStorageProviderCommand <IEnumerable <IQueryResultRow>, IRdbmsProviderCommandExecutionContext> CreateForCustomQuery(IQuery query)
 {
     ArgumentUtility.CheckNotNull("query", query);
     return(_queryCommandFactory.CreateForCustomQuery(query));
 }