public void WhenInValidFieldsParameterPassed_ShouldSerializeTheseFieldsJson_ComplexDummyObject()
        {
            var complexDummySerializableObject = new SerializableDummyObjectWithComplexTypes();

            complexDummySerializableObject.Items.Add(new DummyObjectWithComplexTypes
            {
                StringProperty             = "string value",
                DummyObjectWithSimpleTypes = new DummyObjectWithSimpleTypes
                {
                    FirstProperty  = "first property value",
                    SecondProperty = "second property value"
                },
                ListOfDummyObjectWithSimpleTypes = new List <DummyObjectWithSimpleTypes>
                {
                    new DummyObjectWithSimpleTypes()
                    {
                        FirstProperty  = "first property of list value",
                        SecondProperty = "second property of list value"
                    }
                }
            });

            // Arange
            IJsonFieldsSerializer cut = new JsonFieldsSerializer();

            // Act
            string json = cut.Serialize(complexDummySerializableObject, "invalid field");

            // Assert
            SerializableDummyObjectWithComplexTypes complexDummySerializableObjectFromJson =
                JsonConvert.DeserializeObject <SerializableDummyObjectWithComplexTypes>(json);

            Assert.AreEqual(0, complexDummySerializableObjectFromJson.Items.Count);
        }
        public void WhenValidFieldsParameterPassed_ShouldSerializeTheseFieldsJson_ComplexDummyObjectEmptyList()
        {
            var complexDummySerializableObject = new SerializableDummyObjectWithComplexTypes();

            complexDummySerializableObject.Items.Add(new DummyObjectWithComplexTypes
            {
                ListOfDummyObjectWithSimpleTypes = new List <DummyObjectWithSimpleTypes>()
            });

            // Arange
            IJsonFieldsSerializer cut = new JsonFieldsSerializer();

            // Act
            string json = cut.Serialize(complexDummySerializableObject, "list_of_dummy_object_with_simple_types");

            // Assert
            SerializableDummyObjectWithComplexTypes complexDummySerializableObjectFromJson =
                JsonConvert.DeserializeObject <SerializableDummyObjectWithComplexTypes>(json);

            Assert.AreEqual(1, complexDummySerializableObjectFromJson.Items.Count);
            Assert.AreEqual(0, complexDummySerializableObjectFromJson.Items[0].ListOfDummyObjectWithSimpleTypes.Count);
        }