public async Task LoadCurrentCultureResourcesAsync_DoesNotReadAssembliesWhenThereAreNone()
    {
        // Arrange
        using var cultureReplacer = new CultureReplacer("en-GB");
        var invoker = new Mock <IJSUnmarshalledRuntime>();

        invoker.Setup(i => i.InvokeUnmarshalled <string[], object, object, Task <object> >(GetSatelliteAssemblies, new[] { "en-GB", "en" }, null, null))
        .Returns(Task.FromResult <object>(0))
        .Verifiable();

        var loader = new WebAssemblyCultureProvider(invoker.Object, CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture);

        // Act
        await loader.LoadCurrentCultureResourcesAsync();

        // Assert
        invoker.Verify(i => i.InvokeUnmarshalled <object, object, object, object[]>(ReadSatelliteAssemblies, null, null, null), Times.Never());
    }
    public async Task LoadCurrentCultureResourcesAsync_ReadsAssemblies()
    {
        // Arrange
        using var cultureReplacer = new CultureReplacer("en-GB");
        var invoker = new Mock <IJSUnmarshalledRuntime>();

        invoker.Setup(i => i.InvokeUnmarshalled <string[], object, object, Task <object> >(GetSatelliteAssemblies, new[] { "en-GB", "en" }, null, null))
        .Returns(Task.FromResult <object>(1))
        .Verifiable();

        invoker.Setup(i => i.InvokeUnmarshalled <object, object, object, object[]>(ReadSatelliteAssemblies, null, null, null))
        .Returns(new object[] { File.ReadAllBytes(GetType().Assembly.Location) })
        .Verifiable();

        var loader = new WebAssemblyCultureProvider(invoker.Object, CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture);

        // Act
        await loader.LoadCurrentCultureResourcesAsync();

        // Assert
        invoker.Verify();
    }