Commit 5307716d authored by JuliaJamnicka's avatar JuliaJamnicka
Browse files

added web api test for two passed dates

parent 9c41c34b
Loading
Loading
Loading
Loading
Loading
+0 −0

Empty file added.

+34 −0
Original line number Diff line number Diff line
using System;
using System.IO;
using System.Linq;
using System.Net.Http.Json;
using System.Threading;
using System.Threading.Tasks;
using JustEat.HttpClientInterception;
@@ -11,6 +12,7 @@ using NUnit.Framework;
using StockAdvisory;
using NodaTime;
using NodaTime.Testing;
using StockAdvisoryWebApi.dto;

namespace StockAdvisoryWebApi.Tests;

@@ -106,4 +108,36 @@ public class StockWebApiTests
        var content = response.Content.ReadAsStringAsync().Result;
        Assert.True(content.Length != 0);
    }

    [Test]
    public async Task Test_WhenTwoDatesArePassed_Then_TwoDaysAreCompared()
    {
        var client = _factory.CreateClient();
        
        var stockParser = new StockParser();
        var analyzer = new StockDifferenceAnalyzerFactory()
            .CreateAnalyzer(
                stockParser.Parse("filesystem/2022-03-31-20_48_00.csv"),
                stockParser.Parse("filesystem/2022-04-11-13_01_00.csv")
            );

        var expected = new StockDifferences
        {
            AddedStocks = analyzer.AddedStocks(),
            RemovedStocks = analyzer.RemovedStocks(),
            DifferentStocks = analyzer.ChangedPositions()
        };
        

        var parameters = $"date1=2022-04-11T13:01:00.000Z&date2=2022-03-31T20:48:00.000Z";
        var response = await client.GetAsync($"/StockAdvisory?{parameters}");
        
        Assert.True(response.IsSuccessStatusCode);
        var returned = await response.Content.ReadFromJsonAsync<StockDifferences>();
        Assert.NotNull(returned);

        CollectionAssert.AreEqual(expected.AddedStocks, returned.AddedStocks);
        CollectionAssert.AreEqual(expected.RemovedStocks, returned.RemovedStocks);
        CollectionAssert.AreEqual(expected.DifferentStocks, returned.DifferentStocks);
    }
}
 No newline at end of file