public void Deserialize_CustomSchema_OnlyValuesFromCustomSchemaAreReturned()
        {
            //Arrange
            var expectedResult = new List <User>();

            expectedResult.Add(new User
            {
                name            = "Alyssa",
                favorite_number = 256,
                favorite_color  = null
            });

            expectedResult.Add(new User
            {
                name            = "Ben",
                favorite_number = 7,
                favorite_color  = "red"
            });

            //Act
            var result = AvroConvert.Deserialize <List <User> >(_avroBytes);


            //Assert
            Assert.Equal(expectedResult, result);
        }
Пример #2
0
        public void Deserialize_CustomSchema_OnlyValuesFromCustomSchemaAreReturned()
        {
            //Arrange
            string customSchema = AvroConvert.GenerateSchema(typeof(UserNameClass));

            Dictionary <string, object> result1 = new Dictionary <string, object>();

            result1.Add("name", "Alyssa");

            Dictionary <string, object> result2 = new Dictionary <string, object>();

            result2.Add("name", "Ben");

            List <object> expectedResult = new List <object>();

            expectedResult.Add(result1);
            expectedResult.Add(result2);


            //Act
            var result = AvroConvert.Deserialize(_avroBytes, customSchema);


            //Assert
            Assert.Equal(expectedResult, result);
        }
        public void SerializeList_ThenDeserialize_ListsAreEqual()
        {
            //Arrange
            SomeTestClass someTestClass = new SomeTestClass
            {
                objectProperty = new NestedTestClass
                {
                    justSomeProperty = "spoko",
                    andLongProperty  = 2137
                },
                simpleProperty = 111111
            };

            SomeTestClass dupa2 = new SomeTestClass
            {
                objectProperty = new NestedTestClass
                {
                    justSomeProperty = "loko",
                    andLongProperty  = 2137
                },
                simpleProperty = 2135
            };

            SomeTestClass[] someTestClasses = new SomeTestClass[2];
            someTestClasses[0] = someTestClass;
            someTestClasses[1] = dupa2;

            //Act
            var serialized   = AvroConvert.Serialize(someTestClasses);
            var deserialized = AvroConvert.Deserialize <List <SomeTestClass> >(serialized);

            //Assert
            Assert.NotNull(deserialized);
        }
        public void Serialize_MultiThreadSerialization_NoExceptionIsThrown()
        {
            //Arrange
            VeryComplexClass testClass = _fixture.Create <VeryComplexClass>();


            //Act
            List <Task> listOfTasks = new List <Task>();

            for (var counter = 0; counter < 10; counter++)
            {
                listOfTasks.Add(Task.Run(() =>
                {
                    for (var iMessagesCntr = 0; iMessagesCntr < 100; iMessagesCntr++)
                    {
                        var result       = AvroConvert.Serialize(testClass);
                        var deserialized = AvroConvert.Deserialize <VeryComplexClass>(result);

                        //Assert
                        Assert.Equal(testClass, deserialized);

                        Thread.Sleep(counter
                                     );
                    }
                }));
            }

            Task.WaitAll(listOfTasks.ToArray());
        }
        public void Component_PrivatePropertyIsMarkedAsDataMember_ItIsSerialized()
        {
            //Arrange
            long expectedValue = 2137;

            AttributeClass toSerialize = _fixture.Create <AttributeClass>();

            typeof(AttributeClass)
            .GetFields(BindingFlags.NonPublic | BindingFlags.Instance).FirstOrDefault(f => f.Name.Contains("privateProperty"))?
            .SetValue(toSerialize, expectedValue);


            //Act
            var result = AvroConvert.Serialize(toSerialize);

            var deserialized = AvroConvert.Deserialize <AttributeClass>(result);


            //Assert
            Assert.NotNull(result);
            Assert.NotNull(deserialized);

            var resultValue = typeof(AttributeClass)
                              .GetFields(BindingFlags.NonPublic | BindingFlags.Instance).FirstOrDefault(f => f.Name.Contains("privateProperty"))?
                              .GetValue(deserialized);

            Assert.Equal(expectedValue, resultValue);
        }
Пример #6
0
        public void Deserialize_ValidBytes_SetOfPropertiesAreReturned()
        {
            //Arrange
            Dictionary <string, object> result1 = new Dictionary <string, object>();

            result1.Add("name", "Alyssa");
            result1.Add("favorite_number", 256);
            result1.Add("favorite_color", null);

            Dictionary <string, object> result2 = new Dictionary <string, object>();

            result2.Add("name", "Ben");
            result2.Add("favorite_number", 7);
            result2.Add("favorite_color", "red");

            List <object> expectedResult = new List <object>();

            expectedResult.Add(result1);
            expectedResult.Add(result2);


            //Act
            var result = AvroConvert.Deserialize(_avroBytes);


            //Assert
            Assert.Equal(expectedResult, result);
        }
        private static async Task <TResponse> SendAvroAsync <TContent, TResponse>(this HttpClient httpClient, string url, HttpMethod httpMethod, TContent content = null) where TContent : class
        {
            HttpRequestMessage httpRequest = new HttpRequestMessage(httpMethod, url);

            if (content != null)
            {
                var avroContent = AvroConvert.Serialize(content);

                HttpContent httpContent = new ByteArrayContent(avroContent);
                httpContent.Headers.Remove("Content-Type");
                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/avro");

                httpRequest.Content = httpContent;
            }

            var response = await httpClient.SendAsync(httpRequest);

            if (response.IsSuccessStatusCode == false)
            {
                HandleErrors();
            }

            var responseContent = await response.Content.ReadAsByteArrayAsync();


            return(AvroConvert.Deserialize <TResponse>(responseContent));
        }
Пример #8
0
        public void Deserialize_SnappyCodedFile_DataIsDeserialized()
        {
            //Arrange
            List <TwitterModel> expected = new List <TwitterModel>();

            expected.Add(new TwitterModel
            {
                Timestamp = 1366150681,
                Tweet     = "Rock: Nerf paper, scissors is fine.",
                Username  = "******"
            });

            expected.Add(new TwitterModel
            {
                Timestamp = 1366154481,
                Tweet     = "Works as intended.  Terran is IMBA.",
                Username  = "******"
            });


            //Act
            var result = AvroConvert.Deserialize <List <TwitterModel> >(_snappy);


            //Assert
            Assert.Equal(expected, result);
        }
Пример #9
0
        public void Merge_MultipleObject_AllOfThemAreMerged()
        {
            //Arrange
            var users = _fixture.CreateMany <User>();

            var avroObjects = users.Select(AvroConvert.Serialize);


            //Act
            var result = AvroConvert.Merge <User>(avroObjects);


            //Assert
            var deserializedResult = AvroConvert.Deserialize <List <User> >(result);

            Assert.NotNull(deserializedResult);
            Assert.Equal(users.Count(), deserializedResult.Count);

            foreach (var user in users)
            {
                var resultUser = deserializedResult.FirstOrDefault(r => r.name == user.name);
                Assert.NotNull(resultUser);
                Assert.Equal(user, resultUser);
            }
        }
Пример #10
0
        public void Serialize_ByteArray_ResultIsTheSameAsInput()
        {
            //Arrange
            var testObject = new byte[]
            {
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9
            };

            //Act
            var result = AvroConvert.Serialize(testObject);

            var deserialized = AvroConvert.Deserialize <byte[]>(result);

            //Assert
            Assert.NotNull(result);
            Assert.NotNull(deserialized);
            Assert.Equal(testObject, deserialized);
        }
        public static async Task <T> GetAsAvro <T>(this HttpClient httpClient, string requestUri)
        {
            var response = await httpClient.GetByteArrayAsync(requestUri);

            T result = AvroConvert.Deserialize <T>(response);

            return(result);
        }
        public void Avro_Brotli()
        {
            var serialized = AvroConvert.Serialize(data, CodecType.Brotli);

            AvroConvert.Deserialize <List <User> >(serialized);

            var path = $"C:\\test\\disk-size.{nameof(Avro_Brotli).ToLower()}.txt";

            File.WriteAllText(path, ConstructSizeLog(serialized.Length));
        }
Пример #13
0
        public void Deserialize_SnappyFile5_NoExceptionIsThrown()
        {
            //Arrange

            //Act
            var result = Record.Exception(() => AvroConvert.Deserialize <List <ModelItem> >(System.IO.File.ReadAllBytes(userData5)));

            //Assert
            Assert.Null(result);
        }
Пример #14
0
        public void Deserialize_FileContainsNoAvroData_NoExceptionIsThrown()
        {
            //Arrange

            //Act
            var result = AvroConvert.Deserialize(_schemaOnlyAvroBytes, typeof(List <UserNameClass>));


            //Assert
            Assert.Equal(null, result);
        }
Пример #15
0
        public override async Task <InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context)
        {
            await using MemoryStream ms = new MemoryStream();
            await context.HttpContext.Request.Body.CopyToAsync(ms);

            var type = context.ModelType;

            object result = AvroConvert.Deserialize(ms.ToArray(), type);

            return(await InputFormatterResult.SuccessAsync(result));
        }
Пример #16
0
        public void Deserialize_FileWithMultipleBlocks_EveryItemIsRead()
        {
            //Arrange


            //Act
            var result = AvroConvert.Deserialize <List <kylosample> >((File.ReadAllBytes("userdata1.avro")));


            //Assert
            result.Should().HaveCount(1000);
        }
Пример #17
0
        public void Deserialize_ValidBytes_SetOfPropertiesAreReturned()
        {
            //Arrange

            //Act
            var result = AvroConvert.Deserialize(_avroBytes);

            var xd = result;

            //Assert
            //   Assert.Equal(_example2schema, schema);
        }
Пример #18
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            Fixture fixture = new Fixture();
            var     data    = fixture.Build <User>().With(u => u.Offerings, fixture.CreateMany <Offering>(50).ToList).CreateMany(100).ToArray();

            var serialized   = AvroConvert.Serialize(data);
            var deserialized = AvroConvert.Deserialize <List <User> >(serialized);

            Console.WriteLine("end World!");
            Console.ReadLine();
        }
        public void Component_Decimal_ResultIsTheSameAsInput(string test)
        {
            //Arrange
            var testDecimal = decimal.Parse(test, CultureInfo.InvariantCulture);

            //Act
            var result       = AvroConvert.Serialize(testDecimal);
            var deserialized = AvroConvert.Deserialize <decimal>(result);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(testDecimal, deserialized);
        }
        public void Component_Double_ResultIsTheSameAsInput(double testObject)
        {
            //Arrange


            //Act
            var result       = AvroConvert.Serialize(testObject);
            var deserialized = AvroConvert.Deserialize <double>(result);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(testObject, deserialized);
        }
Пример #21
0
        public void Component_ClassWithList_ListsAreEqual()
        {
            //Arrange
            var someTestClasses = _fixture.CreateMany <BaseTestClass>().ToList();

            //Act
            var serialized   = AvroConvert.Serialize(someTestClasses);
            var deserialized = AvroConvert.Deserialize <List <BaseTestClass> >(serialized);

            //Assert
            Assert.NotNull(deserialized);
            Assert.Equal(someTestClasses, deserialized);
        }
Пример #22
0
        public void Deserialize_InvalidFile_InvalidAvroObjectExceptionIsThrown()
        {
            //Arrange
            byte[] invalidBytes = new byte[2137];


            //Act
            var result = Record.Exception(() => AvroConvert.Deserialize <int>(invalidBytes));


            //Assert
            Assert.IsType <InvalidAvroObjectException>(result);
        }
Пример #23
0
        public void Component_EmptyGuid_ResultIsTheSameAsInput()
        {
            //Arrange
            Guid testClass = Guid.Empty;

            //Act
            var result       = AvroConvert.Serialize(testClass);
            var deserialized = AvroConvert.Deserialize <Guid>(result);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(testClass, deserialized);
        }
Пример #24
0
        public void Serialize_MinInt_ResultIsTheSameAsInput()
        {
            //Arrange
            int testObject = int.MinValue;

            //Act
            var result = AvroConvert.Serialize(testObject);

            var deserialized = AvroConvert.Deserialize <int>(result);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(testObject, deserialized);
        }
Пример #25
0
        public void Serialize_Decimal_ResultIsTheSameAsInput()
        {
            //Arrange
            decimal testObject = 21.37m;

            //Act
            var result = AvroConvert.Serialize(testObject);

            var deserialized = AvroConvert.Deserialize <decimal>(result);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(testObject, deserialized);
        }
Пример #26
0
        public void Serialize_BoolFalse_ResultIsTheSameAsInput()
        {
            //Arrange
            bool testObject = false;

            //Act
            var result = AvroConvert.Serialize(testObject);

            var deserialized = AvroConvert.Deserialize <bool>(result);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(testObject, deserialized);
        }
Пример #27
0
        public void Component_ObjectIsList_ResultIsTheSameAsInput()
        {
            //Arrange
            List <int> dictionary = _fixture.Create <List <int> >();

            //Act
            var result       = AvroConvert.Serialize(dictionary);
            var deserialized = AvroConvert.Deserialize <List <int> >(result);

            //Assert
            Assert.NotNull(result);
            Assert.NotNull(deserialized);
            Assert.Equal(dictionary, deserialized);
        }
Пример #28
0
        public void Component_ObjectContainsLists_ResultIsTheSameAsInput()
        {
            //Arrange
            ClassWithSimpleList testClass = _fixture.Create <ClassWithSimpleList>();

            //Act
            var result       = AvroConvert.Serialize(testClass);
            var deserialized = AvroConvert.Deserialize <ClassWithSimpleList>(result);

            //Assert
            Assert.NotNull(result);
            Assert.NotNull(deserialized);
            Assert.Equal(testClass.someList.Count, deserialized.someList.Count);
        }
Пример #29
0
        public void Component_ObjectIsIImmutableSet_ResultIsTheSameAsInput()
        {
            //Arrange
            IImmutableSet <BaseTestClass> set = _fixture.Create <IEnumerable <BaseTestClass> >().ToImmutableHashSet();

            //Act
            var result       = AvroConvert.Serialize(set);
            var deserialized = AvroConvert.Deserialize <ImmutableHashSet <BaseTestClass> >(result);

            //Assert
            Assert.NotNull(result);
            Assert.NotNull(deserialized);
            Assert.Equal(set, deserialized);
        }
Пример #30
0
        public void Component_ObjectIsHashSet_ResultIsTheSameAsInput()
        {
            //Arrange
            HashSet <int> hashset = _fixture.Create <HashSet <int> >();

            //Act
            var result       = AvroConvert.Serialize(hashset);
            var deserialized = AvroConvert.Deserialize <HashSet <int> >(result);

            //Assert
            Assert.NotNull(result);
            Assert.NotNull(deserialized);
            Assert.Equal(hashset, deserialized);
        }