internal static void TestSelectExpandWrapperConverter <T>() where T : SelectExpandWrapper { // Arrange T wrapper = (T)Activator.CreateInstance(typeof(T)); MockPropertyContainer container = new MockPropertyContainer(); wrapper.Container = new MockPropertyContainer(); wrapper.Model = _edmModel; wrapper.UseInstanceForProperties = true; SelectExpandWrapper <SelectExpandWrapperEntity> selectExpandWrapper = wrapper as SelectExpandWrapper <SelectExpandWrapperEntity>; Assert.NotNull(selectExpandWrapper); selectExpandWrapper.Instance = new SelectExpandWrapperEntity { Name = "abc" }; JsonSerializerOptions options = new JsonSerializerOptions(); SelectExpandWrapperConverter converterFactory = new SelectExpandWrapperConverter(); JsonConverter <T> typeConverter = converterFactory.CreateConverter(typeof(T), options) as JsonConverter <T>; // Act string json = SerializeUtils.SerializeAsJson(jsonWriter => typeConverter.Write(jsonWriter, wrapper, options)); // Assert Assert.Equal("{\"Name\":\"abc\"}", json); }
public void CanConvertWorksForSelectExpandWrapper(Type type, bool expected) { // Arrange SelectExpandWrapperConverter converter = new SelectExpandWrapperConverter(); // Act & Assert Assert.Equal(expected, converter.CanConvert(type)); }
public void CreateConverterWorksForSelectExpandWrapper(Type type, Type expected) { // Arrange JsonSerializerOptions options = new JsonSerializerOptions(); SelectExpandWrapperConverter converter = new SelectExpandWrapperConverter(); // Act JsonConverter typeConverter = converter.CreateConverter(type, options); // Assert if (expected == null) { Assert.Null(typeConverter); } else { Assert.Equal(expected, typeConverter.GetType()); } }
internal static void TestSelectExpandWrapperConverterRead <T>() where T : SelectExpandWrapper { // Arrange JsonSerializerOptions options = new JsonSerializerOptions(); SelectExpandWrapperConverter converter = new SelectExpandWrapperConverter(); JsonConverter <T> typeConverter = converter.CreateConverter(typeof(T), options) as JsonConverter <T>; try { // Act ReadOnlySpan <byte> jsonReadOnlySpan = Encoding.UTF8.GetBytes("any"); Utf8JsonReader reader = new Utf8JsonReader(jsonReadOnlySpan); typeConverter.Read(ref reader, typeof(object), options); } catch (NotImplementedException ex) { // Assert Assert.Equal($"'{typeof(T).Name}' is internal and should never be deserialized into.", ex.Message); } }