/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Components/Server/test/ElementReferenceJsonConverterTest.cs
113 строк
3 KB
Shreyas Jejurkar
chore : Remove unwanted `using` statement (#39176)
02 янв 2022, 17:39
Не верифицирован
02 янв 2022, 17:39
c85baf8
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Text; using System.Text.Json; using Moq; namespace Microsoft.AspNetCore.Components; public class ElementReferenceJsonConverterTest { private readonly ElementReferenceContext ElementReferenceContext; private readonly ElementReferenceJsonConverter Converter; public ElementReferenceJsonConverterTest() { ElementReferenceContext = Mock.Of<ElementReferenceContext>(); Converter = new ElementReferenceJsonConverter(ElementReferenceContext); } [Fact] public void Serializing_Works() { // Arrange var elementReference = ElementReference.CreateWithUniqueId(ElementReferenceContext); var expected = $"{{\"__internalId\":\"{elementReference.Id}\"}}"; var memoryStream = new MemoryStream(); var writer = new Utf8JsonWriter(memoryStream); // Act Converter.Write(writer, elementReference, new JsonSerializerOptions()); writer.Flush(); // Assert var json = Encoding.UTF8.GetString(memoryStream.ToArray()); Assert.Equal(expected, json); } [Fact] public void Deserializing_Works() { // Arrange var id = ElementReference.CreateWithUniqueId(ElementReferenceContext).Id; var json = $"{{\"__internalId\":\"{id}\"}}"; var bytes = Encoding.UTF8.GetBytes(json); var reader = new Utf8JsonReader(bytes); reader.Read(); // Act var elementReference = Converter.Read(ref reader, typeof(ElementReference), new JsonSerializerOptions()); // Assert Assert.Equal(id, elementReference.Id); } [Fact] public void Deserializing_WithFormatting_Works() { // Arrange var id = ElementReference.CreateWithUniqueId(ElementReferenceContext).Id; var json = @$"{{ ""__internalId"": ""{id}"" }}"; var bytes = Encoding.UTF8.GetBytes(json); var reader = new Utf8JsonReader(bytes); reader.Read(); // Act var elementReference = Converter.Read(ref reader, typeof(ElementReference), new JsonSerializerOptions()); // Assert Assert.Equal(id, elementReference.Id); } [Fact] public void Deserializing_Throws_IfUnknownPropertyAppears() { // Arrange var json = "{\"id\":\"some-value\"}"; var bytes = Encoding.UTF8.GetBytes(json); // Act var ex = Assert.Throws<JsonException>(() => { var reader = new Utf8JsonReader(bytes); reader.Read(); Converter.Read(ref reader, typeof(ElementReference), new JsonSerializerOptions()); }); // Assert Assert.Equal("Unexpected JSON property 'id'.", ex.Message); } [Fact] public void Deserializing_Throws_IfIdIsNotSpecified() { // Arrange var json = "{}"; var bytes = Encoding.UTF8.GetBytes(json); // Act var ex = Assert.Throws<JsonException>(() => { var reader = new Utf8JsonReader(bytes); reader.Read(); Converter.Read(ref reader, typeof(ElementReference), new JsonSerializerOptions()); }); // Assert Assert.Equal("__internalId is required.", ex.Message); } }