Exemple #1
0
    public async Task WithRebuild()
    {
        var dateTime  = DateTime.Now;
        var instance1 = new SqlInstance(
            "rebuild",
            TestDbBuilder.CreateTable,
            timestamp: dateTime);
        int data;

        using (var database1 = await instance1.Build())
        {
            data = await TestDbBuilder.AddData(database1.Connection);
        }

        var instance2 = new SqlInstance(
            "rebuild",
            connection => throw new Exception(),
            timestamp: dateTime);

        using (var database = await instance2.Build())
        {
            var connection1 = database.Connection;
            Assert.DoesNotContain(data, await TestDbBuilder.GetData(connection1));
        }
    }
Exemple #2
0
    public async Task WithRollbackPerf()
    {
        var instance = new SqlInstance("Name", TestDbBuilder.CreateTable);

        await using (await instance.BuildWithRollback())
        {
        }

        SqlDatabaseWithRollback?database = null;

        try
        {
            var stopwatch = Stopwatch.StartNew();
            database = await instance.BuildWithRollback();

            Trace.WriteLine(stopwatch.ElapsedMilliseconds);
            await TestDbBuilder.AddData(database.Connection);
        }
        finally
        {
            var stopwatch = Stopwatch.StartNew();
            database?.Dispose();
            Trace.WriteLine(stopwatch.ElapsedMilliseconds);
        }
    }
Exemple #3
0
        public async Task Test()
        {
            await using var database = await LocalDb();

            await TestDbBuilder.AddData(database.Connection);

            Assert.Single(await TestDbBuilder.GetData(database.Connection));
        }
Exemple #4
0
        public async Task Test()
        {
            using (var database = await sqlInstance.Build())
            {
                await TestDbBuilder.AddData(database.Connection);

                Assert.Single(await TestDbBuilder.GetData(database.Connection));
            }
        }
Exemple #5
0
    static async Task AddAndVerifyData(SqlInstance instance)
    {
        using (var database = await instance.Build())
        {
            var connection = database.Connection;
            var data       = await TestDbBuilder.AddData(connection);

            Assert.Contains(data, await TestDbBuilder.GetData(connection));
        }
    }
Exemple #6
0
    public async Task TheTestWithDbName()
    {
        #region WithDbName
        await using var database = await sqlInstance.Build("TheTestWithDbName");

        #endregion
        await TestDbBuilder.AddData(database.Connection);

        Assert.Single(await TestDbBuilder.GetData(database.Connection));
    }
Exemple #7
0
    public async Task Simple()
    {
        SqlInstance instance = new("Name", TestDbBuilder.CreateTable);

        await using var database = await instance.Build();

        var connection = database.Connection;
        var data       = await TestDbBuilder.AddData(connection);

        Assert.Contains(data, await TestDbBuilder.GetData(connection));
    }
Exemple #8
0
    public async Task TheTest()
    {
        #region BuildDatabase
        await using var database = await sqlInstance.Build();

        #region BuildContext
        await TestDbBuilder.AddData(database.Connection);

        Assert.Single(await TestDbBuilder.GetData(database.Connection));
        #endregion
        #endregion
    }
Exemple #9
0
    public async Task WithRollback()
    {
        var instance = new SqlInstance("Name", TestDbBuilder.CreateTable);

        await using var database1 = await instance.BuildWithRollback();

        await using var database2 = await instance.BuildWithRollback();

        var data = await TestDbBuilder.AddData(database1.Connection);

        Assert.Contains(data, await TestDbBuilder.GetData(database1.Connection));
        Assert.Empty(await TestDbBuilder.GetData(database2.Connection));
    }
Exemple #10
0
    public async Task Simple()
    {
        var instance = new SqlInstance("Name", TestDbBuilder.CreateTable);

        using (var database = await instance.Build())
        {
            var connection = database.Connection;
            var data       = await TestDbBuilder.AddData(connection);

            Assert.Contains(data, await TestDbBuilder.GetData(connection));
            var settings = DbPropertyReader.Read(connection, "Tests_Simple");
            Assert.NotEmpty(settings.Files);
        }
    }
Exemple #11
0
    public async Task RecordsSql()
    {
        Skip.If(!RuntimeInformation.IsOSPlatform(OSPlatform.Windows));

        var transport = new RecordingTransport();
        var options   = new SentryOptions
        {
            TracesSampleRate = 1,
            Transport        = transport,
            Dsn             = DsnSamples.ValidDsnWithoutSecret,
            DiagnosticLevel = SentryLevel.Debug
        };

        options.AddIntegration(new SentryDiagnosticListenerIntegration());

        using var database = await sqlInstance.Build();

        using (var hub = new Hub(options))
        {
            var transaction = hub.StartTransaction("my transaction", "my operation");
            hub.ConfigureScope(scope => scope.Transaction = transaction);
            hub.CaptureException(new Exception("my exception"));
            await TestDbBuilder.AddData(database);

            await TestDbBuilder.GetData(database);

            transaction.Finish();
        }

        var payloads = transport.Envelopes
                       .SelectMany(x => x.Items)
                       .Select(x => x.Payload)
                       .ToList();

        await Verify(payloads)
        .ModifySerialization(
            p =>
        {
            p.IgnoreMembersWithType <Contexts>();
            p.IgnoreMembersWithType <SdkVersion>();
            p.IgnoreMembersWithType <DateTimeOffset>();
            p.IgnoreMembersWithType <SpanId>();
            p.IgnoreMembersWithType <SentryId>();
            p.IgnoreMembers <SentryEvent>(e => e.Modules, e => e.Release);
            p.IgnoreMembers <Transaction>(t => t.Release);
            p.IgnoreMembers <SentryException>(e => e.Module, e => e.ThreadId);
        });
    }