Example #1
0
    public void Selects_Matching_Columns_From_Tables()
    {
        // Arrange
        var table   = new TestTable0();
        var builder = new QueryBuilderWithFrom(table);

        builder.Join <TestTable0, TestTable1>(QueryJoin.Inner, t => t.Foo, t => t.Bar);

        // Act
        var result = builder.Select <TestModel>();

        // Assert
        var some = result.AssertSome();

        Assert.Collection(some.SelectColumns,
                          x =>
        {
            Assert.Equal(nameof(TestTable0), x.TblName.Name);
            Assert.Equal(TestTable0.Prefix + nameof(TestTable0.Foo), x.ColName);
            Assert.Equal(nameof(TestTable0.Foo), x.ColAlias);
        },
                          x =>
        {
            Assert.Equal(nameof(TestTable1), x.TblName.Name);
            Assert.Equal(TestTable1.Prefix + nameof(TestTable1.Bar), x.ColName);
            Assert.Equal(nameof(TestTable1.Bar), x.ColAlias);
        }
                          );
    }
Example #2
0
    public void From_Table_Not_Added_Throws_JoinFromTableNotAddedException()
    {
        // Arrange
        var table   = Substitute.For <ITable>();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        var action = void() => builder.Join <TestTable0, TestTable0>(QueryJoin.Inner, t => t.Foo, t => t.Foo);

        // Assert
        Assert.Throws <JoinFromTableNotAddedException <TestTable0> >(action);
    }
Example #3
0
    public void Table_Not_Added_Throws_WhereTableNotAddedException()
    {
        // Arrange
        var table   = Substitute.For <ITable>();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        var action = void() => builder.Where <TestTable>(t => t.Foo, Compare.Equal, Rnd.Str);

        // Assert
        Assert.Throws <WhereTableNotAddedException <TestTable> >(action);
    }
Example #4
0
    public void Table_Not_Added_Throws_Exception()
    {
        // Arrange
        var table   = Substitute.For <ITable>();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        var action = void() => builder.CheckTable <TestTable, TestException <TestTable> >();

        // Assert
        Assert.Throws <TestException <TestTable> >(action);
    }
Example #5
0
    public void Table_Already_Added_Does_Nothing()
    {
        // Arrange
        var table   = new TestTable();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        builder.AddTable <TestTable>();

        // Assert
        Assert.Collection(builder.Tables,
                          x => Assert.IsType <TestTable>(x)
                          );
    }
Example #6
0
    public void Adds_To_Table_If_Not_Already_Added()
    {
        // Arrange
        var table   = new TestTable0();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        builder.Join <TestTable0, TestTable1>(QueryJoin.Inner, t => t.Foo, t => t.Bar);

        // Assert
        Assert.Collection(builder.Tables,
                          x => Assert.IsType <TestTable0>(x),
                          x => Assert.IsType <TestTable1>(x)
                          );
    }
Example #7
0
    public void Sets_Skip()
    {
        // Arrange
        var table   = Substitute.For <ITable>();
        var builder = new QueryBuilderWithFrom(table);
        var value   = Rnd.ULng;

        // Act
        var result = builder.Skip(value);

        // Assert
        var from = Assert.IsType <QueryBuilderWithFrom>(result);

        Assert.Equal(value, from.Parts.Skip);
    }
Example #8
0
    public void Table_Not_Added_Adds_Table()
    {
        // Arrange
        var table   = Substitute.For <ITable>();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        builder.AddTable <TestTable>();

        // Assert
        Assert.Collection(builder.Tables,
                          x => Assert.Same(table, x),
                          x => Assert.IsType <TestTable>(x)
                          );
    }
Example #9
0
    public void Table_Added_Does_Nothing()
    {
        // Arrange
        var table   = new TestTable();
        var builder = new QueryBuilderWithFrom(table);

        // Act
        bool action()
        {
            builder.CheckTable <TestTable, TestException <TestTable> >();
            return(true);
        }

        // Assert
        Assert.True(action());
    }
Example #10
0
    public void Adds_Predicate_To_Where_List()
    {
        // Arrange
        var table   = new TestTable();
        var builder = new QueryBuilderWithFrom(table);
        var value   = Rnd.Str;

        // Act
        var result = (QueryBuilderWithFrom)builder.Where <TestTable>(t => t.Foo, Compare.Like, value);

        // Assert
        Assert.Collection(result.Parts.Where,
                          x =>
        {
            Assert.Equal(nameof(TestTable), x.column.TblName.Name);
            Assert.Equal(TestTable.Prefix + nameof(TestTable0.Foo), x.column.ColName);
            Assert.Equal(nameof(TestTable.Foo), x.column.ColAlias);
            Assert.Equal(Compare.Like, x.compare);
            Assert.Equal(value, x.value);
        }
                          );
    }