public IStorageProviderCommand <ObjectLookupResult <DataContainer>, IRdbmsProviderCommandExecutionContext> CreateForSingleIDLookup(
            ObjectID objectID)
        {
            ArgumentUtility.CheckNotNull("objectID", objectID);

            return(_lookupCommandFactory.CreateForSingleIDLookup(objectID));
        }
        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));
        }