示例#1
0
    public async Task With_Parts_And_Page_Calls_Client_GetCountQuery_And_Client_GetQuery_And_Db_QueryAsync()
    {
        // Arrange
        var value = Rnd.Str;

        var(parts, param)         = DbQuery_Setup.GetParts();
        var(db, client, _, query) = DbQuery_Setup.Get(value, param);
        var transaction = Substitute.For <IDbTransaction>();

        // Act
        await query.QueryAsync <int>(Rnd.ULng, parts);

        await query.QueryAsync <int>(Rnd.ULng, parts, transaction);

        // Assert
        client.Received(2).GetCountQuery(parts);
        await db.Received().ExecuteAsync <ulong>(value, param, CommandType.Text, Arg.Any <IDbTransaction>());

        await db.Received().ExecuteAsync <ulong>(value, param, CommandType.Text, transaction);

        client.Received(2).GetQuery(Arg.Any <IQueryParts>());
        await db.Received().QueryAsync <int>(value, param, CommandType.Text, Arg.Any <IDbTransaction>());

        await db.Received().QueryAsync <int>(value, param, CommandType.Text, transaction);
    }
示例#2
0
    public async Task Calls_Db_ExecuteAsync_As_Text()
    {
        // Arrange
        var(db, _, _, query) = DbQuery_Setup.Get();
        var value       = Rnd.Str;
        var param       = Rnd.Int;
        var transaction = Substitute.For <IDbTransaction>();

        // Act
        await query.ExecuteAsync(value, param);

        await query.ExecuteAsync(value, param, transaction);

        await query.ExecuteAsync <long>(value, param);

        await query.ExecuteAsync <long>(value, param, transaction);

        // Assert
        await db.Received().ExecuteAsync(value, param, CommandType.Text, Arg.Any <IDbTransaction>());

        await db.Received().ExecuteAsync(value, param, CommandType.Text, transaction);

        await db.Received().ExecuteAsync <long>(value, param, CommandType.Text, Arg.Any <IDbTransaction>());

        await db.Received().ExecuteAsync <long>(value, param, CommandType.Text, transaction);
    }
示例#3
0
    public async Task WithParts_And_Page_GetQuery_Exception_Returns_None_With_ErrorGettingQueryFromPartsExceptionMsg()
    {
        // Arrange
        var(parts, _)            = DbQuery_Setup.GetParts();
        var(_, client, _, query) = DbQuery_Setup.Get();
        var transaction = Substitute.For <IDbTransaction>();

        client.GetQuery(Arg.Any <IQueryParts>()).ThrowsForAnyArgs <Exception>();

        // Act
        var r0 = await query.QueryAsync <int>(Rnd.ULng, parts);

        var r1 = await query.QueryAsync <int>(Rnd.ULng, parts, transaction);

        // Assert
        r0.AssertNone().AssertType <ErrorGettingQueryFromPartsExceptionMsg>();
        r1.AssertNone().AssertType <ErrorGettingQueryFromPartsExceptionMsg>();
    }
示例#4
0
    public async Task Calls_Db_QueryAsync_With_CommandType(CommandType input)
    {
        // Arrange
        var(db, _, _, query) = DbQuery_Setup.Get();
        var value       = Rnd.Str;
        var param       = Rnd.Int;
        var transaction = Substitute.For <IDbTransaction>();

        // Act
        await query.QueryAsync <int>(value, param, input);

        await query.QueryAsync <int>(value, param, input, transaction);

        // Assert
        await db.Received().QueryAsync <int>(value, param, input, Arg.Any <IDbTransaction>());

        await db.Received().QueryAsync <int>(value, param, input, transaction);
    }