예제 #1
0
    public void Uses_Uri_From_GetUri_As_Uri()
    {
        // Arrange
        var urlHelper = Substitute.For <IUrlHelper>();
        var i0        = new MenuItem {
            Text = Rnd.Str, Controller = Rnd.Str
        };
        var i1 = new MenuItem {
            Text = Rnd.Str, Controller = Rnd.Str
        };
        var items = new[] { i0, i1 }.ToList();
        var uri    = Rnd.Str;
        var getUri = Substitute.For <GetUri>();

        getUri.Invoke(urlHelper, Arg.Any <MenuItem>()).Returns(uri);

        // Act
        var result = MenuF.GetSimpleItems(urlHelper, items, getUri);

        // Assert
        Assert.Collection(result,
                          x => Assert.Equal(uri, x.Url),
                          x => Assert.Equal(uri, x.Url)
                          );
    }
예제 #2
0
    public void No_Items_Returns_Empty_List()
    {
        // Arrange
        var urlHelper = Substitute.For <IUrlHelper>();
        var getUri    = Substitute.For <GetUri>();

        // Act
        var result = MenuF.GetSimpleItems(urlHelper, new(), getUri);

        // Assert
        Assert.Empty(result);
    }
예제 #3
0
    public void Empty_List_Returns_Empty_List()
    {
        // Arrange
        var urlHelper = Substitute.For <IUrlHelper>();
        var getUri    = Substitute.For <GetUri>();

        // Act
        var result = MenuF.GetUris(urlHelper, new(), getUri);

        // Assert
        Assert.Empty(result);
        getUri.DidNotReceiveWithAnyArgs().Invoke(urlHelper, Arg.Any <MenuItem>());
    }
예제 #4
0
    public async Task Appends_Done_On_Success()
    {
        // Arrange
        var result  = new StringBuilder();
        var handler = new MockHttpMessageHandler();
        var client  = new HttpClient(handler);
        var uri     = "https://bfren.dev";

        // Act
        await MenuF.LoadUriAsync(result, client, uri, CancellationToken.None);

        // Assert
        Assert.Contains("done", result.ToString());
    }
예제 #5
0
    public async Task Appends_Failed_On_Failure()
    {
        // Arrange
        var result  = new StringBuilder();
        var handler = new MockHttpMessageHandler(System.Net.HttpStatusCode.InternalServerError);
        var client  = new HttpClient(handler);
        var uri     = "https://bfren.dev";

        // Act
        await MenuF.LoadUriAsync(result, client, uri, CancellationToken.None);

        // Assert
        Assert.Contains("failed", result.ToString());
    }
예제 #6
0
    public async Task Returns_Correct_Message()
    {
        // Arrange
        var result   = new StringBuilder();
        var handler  = new MockHttpMessageHandler();
        var client   = new HttpClient(handler);
        var uri      = "https://bfren.dev";
        var expected = $"Loading {uri} .. done<br/>{Environment.NewLine}";

        // Act
        await MenuF.LoadUriAsync(result, client, uri, CancellationToken.None);

        // Assert
        Assert.Equal(expected, result.ToString());
    }
예제 #7
0
    public void Calls_GetUri_For_Each_Item()
    {
        // Arrange
        var urlHelper = Substitute.For <IUrlHelper>();
        var i0 = new MenuItem();
        var i1 = new MenuItem();
        var items = new[] { i0, i1 }.ToList();
        var getUri = Substitute.For <GetUri>();

        // Act
        var result = MenuF.GetUris(urlHelper, items, getUri);

        // Assert
        Assert.NotEmpty(result);
        getUri.Received(1).Invoke(urlHelper, i0);
        getUri.Received(1).Invoke(urlHelper, i1);
    }
예제 #8
0
    public void Without_Text_Uses_Item_Controller_As_Text()
    {
        // Arrange
        var urlHelper = Substitute.For <IUrlHelper>();
        var i0        = new MenuItem {
            Controller = Rnd.Str
        };
        var i1 = new MenuItem {
            Controller = Rnd.Str
        };
        var items = new[] { i0, i1 }.ToList();
        var getUri = Substitute.For <GetUri>();

        getUri.Invoke(urlHelper, Arg.Any <MenuItem>()).Returns(Rnd.Str);

        // Act
        var result = MenuF.GetSimpleItems(urlHelper, items, getUri);

        // Assert
        Assert.Collection(result,
                          x => Assert.Equal(i0.Controller, x.Text),
                          x => Assert.Equal(i1.Controller, x.Text)
                          );
    }