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());
            }
        }
Exemplo n.º 4
0
        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);
            }
        }