public void SqlScope_AddChildScopeTest()
        {
            var sut = new SqlScope();
            var a   = sut.CreateChildScope();
            var b   = a.CreateChildScope();
            var c   = b.CreateChildScope();
            var d   = b.CreateChildScope();

            a.Add(SqlName.Parse("a", ObjectLevel.Local), "1");
            b.Add(SqlName.Parse("b", ObjectLevel.Local), "2");
            c.Add(SqlName.Parse("c", ObjectLevel.Local), "3");
            d.Add(SqlName.Parse("d", ObjectLevel.Local), "4");
            Assert.Equal("1", a.ResolveObject(SqlName.Parse("a", ObjectLevel.Local), null));
            Assert.Null(a.ResolveObject(SqlName.Parse("b", ObjectLevel.Local), null));
            Assert.Null(a.ResolveObject(SqlName.Parse("c", ObjectLevel.Local), null));
            Assert.Null(a.ResolveObject(SqlName.Parse("d", ObjectLevel.Local), null));

            Assert.Equal("1", b.ResolveObject(SqlName.Parse("a", ObjectLevel.Local), null));
            Assert.Equal("2", b.ResolveObject(SqlName.Parse("b", ObjectLevel.Local), null));
            Assert.Null(b.ResolveObject(SqlName.Parse("c", ObjectLevel.Local), null));
            Assert.Null(b.ResolveObject(SqlName.Parse("d", ObjectLevel.Local), null));

            Assert.Equal("1", c.ResolveObject(SqlName.Parse("a", ObjectLevel.Local), null));
            Assert.Equal("2", c.ResolveObject(SqlName.Parse("b", ObjectLevel.Local), null));
            Assert.Equal("3", c.ResolveObject(SqlName.Parse("c", ObjectLevel.Local), null));
            Assert.Null(c.ResolveObject(SqlName.Parse("d", ObjectLevel.Local), null));

            Assert.Equal("1", d.ResolveObject(SqlName.Parse("a", ObjectLevel.Local), null));
            Assert.Equal("2", d.ResolveObject(SqlName.Parse("b", ObjectLevel.Local), null));
            Assert.Null(d.ResolveObject(SqlName.Parse("c", ObjectLevel.Local), null));
            Assert.Equal("4", d.ResolveObject(SqlName.Parse("d", ObjectLevel.Local), null));
        }
        public void SqlScope_GetTest()
        {
            var sut = new SqlScope();

            sut.Add(SqlName.Parse("a", ObjectLevel.Unknown), "42");
            Assert.Equal("42", sut.ResolveObject(SqlName.Parse("a", ObjectLevel.Unknown), null));
        }
        public void SqlScope_ResolveTest()
        {
            var sut = new SqlScope(null);
            var a   = sut.CreateChildScope();

            sut.Add(SqlName.Parse("a", ObjectLevel.Unknown), "42");
            Assert.Equal("42", a.ResolveObject(SqlName.Parse("a", ObjectLevel.Local), null));
        }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ModelSqlTable"/> class.
 /// </summary>
 /// <param name="scopeSchema">the scope of the owner - schema</param>
 public ModelSqlTable(SqlScope scopeSchema)
 {
     this._Scope = (scopeSchema?.CreateChildScope(this)) ?? (new SqlScope(null, this));
 }
示例#5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SqlScope"/> class.
 /// </summary>
 /// <param name="parent">the parent of this</param>
 /// <param name="nameResolver">resolve injection names/object.</param>
 public SqlScope(SqlScope parent = null, IScopeNameResolver nameResolver = null)
 {
     this.Parent        = parent;
     this.ChildElements = new Dictionary <SqlName, object>();
     this._NameResolver = nameResolver;
 }
示例#6
0
 private SqlScope()
 {
     this.ChildElements = new Dictionary <SqlName, object>();
     this.Parent        = this;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ModelSqlDatabase"/> class.
 /// </summary>
 /// <param name="scope">the scope</param>
 public ModelSqlDatabase(SqlScope scope)
     : this()
 {
     this._Scope = (scope?.CreateChildScope(this)) ?? (new SqlScope(null, this));
 }
示例#8
0
 public SqlResolveScope(SqlResolveScope parent, SqlScope scope)
 {
     this.Names  = new List <SqlName>();
     this.Parent = parent;
     this.Scope  = scope;
 }
示例#9
0
 /// <summary>
 /// Get the current scope
 /// </summary>
 /// <returns>this scope</returns>
 public SqlScope GetScope()
 {
     return(this._Scope ?? (this._Scope = new SqlScope(null, this)));
 }
示例#10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ModelSqlSchema"/> class.
 /// </summary>
 /// <param name="scopeDatbase">the database scope.</param>
 public ModelSqlSchema(SqlScope scopeDatbase)
     : this()
 {
     this._Scope = (scopeDatbase?.CreateChildScope(this)) ?? (new SqlScope(null, this));
 }
示例#11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ModelSqlColumn"/> class.
 /// </summary>
 /// <param name="ownerScope">scope</param>
 public ModelSqlColumn(SqlScope ownerScope)
 {
     this._Scope = ownerScope;
 }