Example #1
0
        public async Task DownloadConvertedText_WithAdapterException()
        {
            // arrange
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _errorAdapter);

            // act
            await vm.DownloadConvertedText().ConfigureAwait(false);

            // assert
            Assert.True(vm.HasError);
        }
Example #2
0
        public async Task OpenInputFile_WithNullChangeEventArgs()
        {
            // arrange
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter);
            InputFileChangeEventArgs args = null;

            // act
            await vm.OpenInputFile(args).ConfigureAwait(false);

            // assert
            Assert.Null(vm.SourceText);
            Assert.True(vm.HasError);
        }
Example #3
0
        public void Construction()
        {
            // arrange

            // act
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter);

            // assert
            Assert.NotNull(vm);
            Assert.Null(vm.SourceText);
            Assert.Null(vm.ConvertedText);
            Assert.True(vm.IsConvertedTextEmpty);
            Assert.Null(vm.ErrorMessage);
            Assert.False(vm.HasError);
        }
Example #4
0
        public async Task DownloadConvertedText_WithValidJsonText()
        {
            // arrange
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                ConvertedText = @"[ { ""foo"" : ""12"" }, { ""bar"" : ""data"" } ]",
                ConvertedType = IBrowserFileAdapter.FileType.JSON
            };

            // act
            await vm.DownloadConvertedText().ConfigureAwait(false);

            // assert
            Assert.False(vm.HasError);
        }
Example #5
0
        public async Task DownloadConvertedText_WithValidCsvText()
        {
            // arrange
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                ConvertedText = "foo, bar\r\ndata, 12\r\nasdf, 33\r\n",
                ConvertedType = IBrowserFileAdapter.FileType.CSV
            };

            // act
            await vm.DownloadConvertedText().ConfigureAwait(false);

            // assert
            Assert.False(vm.HasError);
        }
Example #6
0
        public void DisplayErrorMessage()
        {
            // arrange
            using var ctx = CreateConfiguredContext();
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter);

            ctx.Services.AddSingleton <JsonCsvConverterViewModel>(vm);

            var cut = ctx.RenderComponent <JsonCsvConverter>();

            // act
            cut.Find("#btn-convert-csv").Click();

            // assert
            cut.MarkupMatches(JsonCsvConverterExpectedResults.ErrorResult);
        }
Example #7
0
        public async Task OpenInputFile_WithChangeEventArgsWithMultipleFiles()
        {
            // arrange
            var files = new List <IBrowserFile> {
                _testFile, _testFile, _testFile
            };
            var args = new InputFileChangeEventArgs(files);
            var vm   = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter);

            // act
            await vm.OpenInputFile(args).ConfigureAwait(false);

            // assert
            Assert.Null(vm.SourceText);
            Assert.True(vm.HasError);
        }
Example #8
0
        public void ConvertToJson(string source, string expectedConverted, bool expectedConvertedEmpty, bool expectedError)
        {
            // arrange
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                SourceText = source
            };

            // act
            vm.ConvertToJson();

            // assert
            Assert.Equal(expectedConverted, vm.ConvertedText);
            Assert.Equal(expectedConvertedEmpty, vm.IsConvertedTextEmpty);
            Assert.Equal(IBrowserFileAdapter.FileType.JSON, vm.ConvertedType);
            Assert.Equal(expectedError, vm.HasError);
        }
Example #9
0
        public async Task OpenInputFile_WithValidChangeEventArgs()
        {
            // arrange
            var files = new List <IBrowserFile> {
                _testFile
            };
            var args = new InputFileChangeEventArgs(files);
            var vm   = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter);

            // act
            await vm.OpenInputFile(args).ConfigureAwait(false);

            // assert
            Assert.NotEmpty(vm.SourceText);
            Assert.Equal("File data...", vm.SourceText);
            Assert.False(vm.HasError);
        }
Example #10
0
        public async Task Copy()
        {
            // arrange
            var mockRuntime = new Mock <IJSRuntime>();
            var vm          = new JsonCsvConverterViewModel(mockRuntime.Object, _fileAdapter)
            {
                ConvertedText = "text to copy..."
            };

            // act
            await vm.Copy().ConfigureAwait(false);

            // assert
            mockRuntime.Verify(f => f.InvokeAsync <object>(
                                   "clipboardCopy.copyText",
                                   new object[] { "text to copy..." }));
        }
Example #11
0
        public void ClearAll()
        {
            // arrange
            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                SourceText    = "garbage in",
                ConvertedText = "garbage out"
            };

            // act
            vm.ClearAll();

            // assert
            Assert.Null(vm.SourceText);
            Assert.Null(vm.ConvertedText);
            Assert.Null(vm.ErrorMessage);
            Assert.False(vm.HasError);
        }
Example #12
0
        public void ToCsvButtonClicked()
        {
            // arrange
            using var ctx = CreateConfiguredContext();

            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                SourceText = "{ \"foo\" : 42, \"bar\" : \"data\" }",
            };

            ctx.Services.AddSingleton <JsonCsvConverterViewModel>(vm);

            var cut = ctx.RenderComponent <JsonCsvConverter>();

            // act
            cut.Find("#btn-convert-csv").Click();

            // assert
            Assert.Contains("foo, bar", cut.Markup);
            Assert.Contains("42, data", cut.Markup);
        }
Example #13
0
        public void ClearAllButtonClicked()
        {
            // arrange
            using var ctx = CreateConfiguredContext();

            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                SourceText    = "Test source text",
                ConvertedText = "Test resulting converted text"
            };

            ctx.Services.AddSingleton <JsonCsvConverterViewModel>(vm);

            var cut = ctx.RenderComponent <JsonCsvConverter>();

            // act
            cut.Find("#btn-clear").Click();

            // assert
            cut.MarkupMatches(JsonCsvConverterExpectedResults.DefaultRenderResult);
        }
Example #14
0
        public void ToJsonButtonClicked()
        {
            // arrange
            using var ctx = CreateConfiguredContext();

            var vm = new JsonCsvConverterViewModel(_jsRuntime, _fileAdapter)
            {
                SourceText = "foo, bar\r\n42, data",
            };

            ctx.Services.AddSingleton <JsonCsvConverterViewModel>(vm);

            var cut = ctx.RenderComponent <JsonCsvConverter>();

            // act
            cut.Find("#btn-convert-json").Click();

            // assert
            Assert.Contains("&quot;foo&quot; : &quot;42&quot;", cut.Markup);
            Assert.Contains("&quot;bar&quot; : &quot;data&quot;", cut.Markup);
        }