Ejemplo n.º 1
0
    public static async Task Function_Reverses_Numbers()
    {
        // Arrange
        using var server = new LambdaTestServer();
        using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1));

        await server.StartAsync(cancellationTokenSource.Token);

        int[]  value = new[] { 1, 2, 3 };
        byte[] json  = JsonSerializer.SerializeToUtf8Bytes(value);

        LambdaTestContext context = await server.EnqueueAsync(json);

        using var httpClient = server.CreateClient();

        // Act
        await ReverseFunction.RunAsync(httpClient, cancellationTokenSource.Token);

        // Assert
        Assert.True(context.Response.TryRead(out LambdaTestResponse? response));
        Assert.True(response !.IsSuccessful);
        Assert.NotNull(response.Content);

        var actual = JsonSerializer.Deserialize <int[]>(response.Content);

        Assert.NotNull(actual);
        Assert.Equal(new[] { 3, 2, 1 }, actual);
    }
Ejemplo n.º 2
0
    public static async Task Function_Reverses_Numbers_With_Mobile_Sdk()
    {
        // Arrange
        using var server = new LambdaTestServer();
        using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1));

        await server.StartAsync(cancellationTokenSource.Token);

        int[]  value   = new[] { 1, 2, 3 };
        byte[] content = JsonSerializer.SerializeToUtf8Bytes(value);

        var request = new LambdaTestRequest(content)
        {
            ClientContext   = JsonSerializer.Serialize(new { client = new { app_title = "my-app" } }),
            CognitoIdentity = JsonSerializer.Serialize(new { identityId = "my-identity" }),
        };

        LambdaTestContext context = await server.EnqueueAsync(content);

        using var httpClient = server.CreateClient();

        // Act
        await ReverseFunction.RunAsync(httpClient, cancellationTokenSource.Token);

        // Assert
        Assert.True(context.Response.TryRead(out LambdaTestResponse? response));
        Assert.NotNull(response);
        Assert.True(response !.IsSuccessful);

        var actual = JsonSerializer.Deserialize <int[]>(response.Content);

        Assert.NotNull(actual);
        Assert.Equal(new[] { 3, 2, 1 }, actual);
    }
Ejemplo n.º 3
0
    public static async Task Function_Can_Process_Multiple_Requests_On_Different_Threads()
    {
        // Arrange
        int messageCount = 1_000;
        int expected     = Enumerable.Range(0, messageCount).Sum();

        using var server = new LambdaTestServer();
        using var cts    = new CancellationTokenSource();

        await server.StartAsync(cts.Token);

        using var httpClient = server.CreateClient();

        // Enqueue the requests to process in the background
        var completedAdding = EnqueueInParallel(messageCount, server);

        // Start a task to consume the responses in the background
        var completedProcessing = Assert(completedAdding, messageCount, cts);

        // Act - Start the function processing
        await ReverseFunction.RunAsync(httpClient, cts.Token);

        // Assert
        int actual = await completedProcessing.Task;

        actual.ShouldBe(expected);
    }