public void AddQuerySource()
        {
            var sqlTable = SqlStatementModelObjectMother.CreateSqlTable();
            var preparedFromExpressionInfo = new FromExpressionInfo(
                sqlTable, new Ordering[] { }, new SqlTableReferenceExpression(sqlTable), null);

            _stageMock
            .Expect(
                mock =>
                mock.PrepareFromExpression(
                    Arg.Is(_mainFromClause.FromExpression),
                    Arg <ISqlPreparationContext> .Matches(c => c != _context),
                    Arg <Func <ITableInfo, SqlTable> > .Is.Anything))
            .Return(preparedFromExpressionInfo)
            .WhenCalled(mi =>
            {
                var tableCreator    = (Func <ITableInfo, SqlTable>)mi.Arguments[2];
                var sampleTableInfo = new UnresolvedTableInfo(typeof(Cook));

                var table = tableCreator(sampleTableInfo);

                Assert.That(table, Is.TypeOf(typeof(SqlTable)));
                Assert.That(((SqlTable)table).TableInfo, Is.SameAs(sampleTableInfo));
                Assert.That(table.JoinSemantics, Is.EqualTo(JoinSemantics.Inner));
            });
            _stageMock.Replay();

            var result = _visitor.AddQuerySource(_mainFromClause, _mainFromClause.FromExpression);

            _stageMock.VerifyAllExpectations();
            Assert.That(result, Is.SameAs(sqlTable));
            Assert.That(_visitor.Context.GetExpressionMapping(new QuerySourceReferenceExpression(_mainFromClause)), Is.Not.Null);
        }
Exemple #2
0
        public static SqlTable CreateSqlTable_WithUnresolvedTableInfo(Type type)
        {
            var unresolvedTableInfo = new UnresolvedTableInfo(type);
            var sqlTable            = new SqlTable(unresolvedTableInfo, JoinSemantics.Inner);

            return(sqlTable);
        }
        public ITableInfo VisitUnresolvedTableInfo(UnresolvedTableInfo tableInfo)
        {
            ArgumentUtility.CheckNotNull("tableInfo", tableInfo);
            var result = _resolver.ResolveTableInfo(tableInfo, _generator);

            return(result.Accept(this));
        }
        public void ApplyContext_UnresolvedTableInfo()
        {
            var tableInfo = new UnresolvedTableInfo(typeof(Cook));

            var result = SqlContextTableInfoVisitor.ApplyContext(tableInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingresolutionContext);

            Assert.That(result, Is.SameAs(tableInfo));
        }
Exemple #5
0
        public IResolvedTableInfo ResolveTableInfo(UnresolvedTableInfo tableInfo, UniqueIdentifierGenerator generator)
        {
            ArgumentUtility.CheckNotNull("tableInfo", tableInfo);
            ArgumentUtility.CheckNotNull("generator", generator);

            var classDefinition = GetClassDefinition(tableInfo.ItemType);

            return(_storageSpecificExpressionResolver.ResolveTable(classDefinition, generator.GetUniqueIdentifier("t")));
        }
 public void SetUp()
 {
     _stageMock                = MockRepository.GenerateMock <IMappingResolutionStage>();
     _resolverMock             = MockRepository.GenerateMock <IMappingResolver>();
     _unresolvedTableInfo      = SqlStatementModelObjectMother.CreateUnresolvedTableInfo(typeof(Cook));
     _resolvedTableInfo        = SqlStatementModelObjectMother.CreateResolvedTableInfo(typeof(Cook));
     _generator                = new UniqueIdentifierGenerator();
     _sqlStatement             = SqlStatementModelObjectMother.CreateSqlStatement_Resolved(typeof(Cook));
     _mappingResolutionContext = new MappingResolutionContext();
 }
        public void ResolveTableInfo()
        {
            var unresolvedTableInfo = new UnresolvedTableInfo(typeof(DataContextTestClass.Customer));

            var resolvedTableInfo = (ResolvedSimpleTableInfo)_mappingResolver.ResolveTableInfo(unresolvedTableInfo, _generator);

            Assert.That(resolvedTableInfo.ItemType, Is.EqualTo(typeof(DataContextTestClass.Customer)));
            Assert.That(resolvedTableInfo.TableAlias, Is.EqualTo("t0"));
            Assert.That(resolvedTableInfo.TableName, Is.EqualTo("Customers"));
        }
Exemple #8
0
        public void SetUp()
        {
            _stageMock = MockRepository.GenerateStrictMock <IMappingResolutionStage>();
            _mappingResolutionContext = new MappingResolutionContext();

            _visitor = new TestableSqlStatementResolver(_stageMock, _mappingResolutionContext);

            _unresolvedTableInfo         = SqlStatementModelObjectMother.CreateUnresolvedTableInfo(typeof(Cook));
            _sqlTable                    = SqlStatementModelObjectMother.CreateSqlTable(_unresolvedTableInfo);
            _fakeResolvedSimpleTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo(typeof(Cook));
        }
Exemple #9
0
        public void SetUp()
        {
            _stageMock          = MockRepository.GenerateMock <ISqlPreparationStage>();
            _context            = SqlStatementModelObjectMother.CreateSqlPreparationContext();
            _cookMainFromClause = ExpressionHelper.CreateMainFromClause <Cook>();
            _cookQuerySourceReferenceExpression = new QuerySourceReferenceExpression(_cookMainFromClause);
            var source = new UnresolvedTableInfo(_cookMainFromClause.ItemType);

            _sqlTable = new SqlTable(source, JoinSemantics.Inner);
            _context.AddExpressionMapping(new QuerySourceReferenceExpression(_cookMainFromClause), new SqlTableReferenceExpression(_sqlTable));
            _methodCallTransformerProvider = CompoundMethodCallTransformerProvider.CreateDefault();
        }
        public IResolvedTableInfo ResolveTableInfo(UnresolvedTableInfo tableInfo, UniqueIdentifierGenerator generator)
        {
            ArgumentUtility.CheckNotNull("tableInfo", tableInfo);
            ArgumentUtility.CheckNotNull("generator", generator);

            MetaTable table = GetMetaTable(tableInfo.ItemType);

            // TODO RM-3127: Refactor when re-linq supports schema names
            var tableName = table.TableName.StartsWith("dbo.") ? table.TableName.Substring(4) : table.TableName;

            return(new ResolvedSimpleTableInfo(tableInfo.ItemType, tableName, generator.GetUniqueIdentifier("t")));
        }
        public void ResolveTableInfo()
        {
            var unresolvedTableInfo = new UnresolvedTableInfo(typeof(Order));

            _storageSpecificExpressionResolverStub
            .Stub(stub => stub.ResolveTable(MappingConfiguration.Current.GetTypeDefinition(typeof(Order)), "t0"))
            .Return(_fakeSimpleTableInfo);

            var resolvedTableInfo = (ResolvedSimpleTableInfo)_resolver.ResolveTableInfo(unresolvedTableInfo, _generator);

            Assert.That(resolvedTableInfo, Is.SameAs(_fakeSimpleTableInfo));
        }
        public void SetUp()
        {
            _context = SqlStatementModelObjectMother.CreateSqlPreparationContext();
            _source  = ExpressionHelper.CreateMainFromClause <Cook>();
            var source = new UnresolvedTableInfo(typeof(int));

            _sqlTable            = new SqlTable(source, JoinSemantics.Inner);
            _parentContext       = SqlStatementModelObjectMother.CreateSqlPreparationContext();
            _parentSource        = ExpressionHelper.CreateMainFromClause <Cook>();
            _parentSqlTable      = new SqlTable(new UnresolvedTableInfo(typeof(int)), JoinSemantics.Inner);
            _sqlStatementBuilder = new SqlStatementBuilder();
            _contextWithParent   = new SqlPreparationContext(_parentContext, _sqlStatementBuilder);
        }
        public void SetUp()
        {
            _resolverMock = MockRepository.GenerateMock <IMappingResolver>();
            _uniqueIdentifierGenerator = new UniqueIdentifierGenerator();

            _unresolvedTableInfo         = SqlStatementModelObjectMother.CreateUnresolvedTableInfo(typeof(Cook));
            _sqlTable                    = SqlStatementModelObjectMother.CreateSqlTable(_unresolvedTableInfo);
            _fakeResolvedSimpleTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo(typeof(Cook));

            _stage = new DefaultMappingResolutionStage(_resolverMock, _uniqueIdentifierGenerator);

            _mappingResolutionContext = new MappingResolutionContext();
        }
        public virtual IResolvedTableInfo ResolveTableInfo(UnresolvedTableInfo tableInfo, UniqueIdentifierGenerator generator)
        {
            switch (tableInfo.ItemType.Name)
            {
            case "Cook":
            case "Knife":
            case "Kitchen":
            case "Restaurant":
            case "Company":
                return(CreateResolvedTableInfo(tableInfo.ItemType, generator));

            case "Chef":
                return(new ResolvedSimpleTableInfo(tableInfo.ItemType, "dbo." + tableInfo.ItemType.Name + "Table", generator.GetUniqueIdentifier("t")));
            }

            throw new UnmappedItemException("The type " + tableInfo.ItemType + " cannot be queried from the stub provider.");
        }
Exemple #15
0
 ITableInfo ITableInfoVisitor.VisitUnresolvedTableInfo(UnresolvedTableInfo tableInfo)
 {
     throw new InvalidOperationException("UnresolvedTableInfo is not valid at this point.");
 }
Exemple #16
0
        public ITableInfo VisitUnresolvedTableInfo(UnresolvedTableInfo tableInfo)
        {
            ArgumentUtility.CheckNotNull("tableInfo", tableInfo);

            return(tableInfo);
        }
Exemple #17
0
 public void SetUp()
 {
     _tableInfo = SqlStatementModelObjectMother.CreateUnresolvedTableInfo(typeof(Cook));
 }
        public void ResolveTableInfo_NoDomainObject_ThrowsException()
        {
            var unresolvedTableInfo = new UnresolvedTableInfo(typeof(Student));

            _resolver.ResolveTableInfo(unresolvedTableInfo, _generator);
        }