public void DetectsDeltaOnDefaultFlagEnum_WhenClassLacksIgnoreOnDefaultFlag()
            {
                var originalCustomer = new TestCustomerWithFlagEnum
                {
                    SomeFlagEnum = TestFlagEnum.OneThing | TestFlagEnum.SecondThing
                };

                var newCustomer = new
                {
                    SomeNeedlessStupidProperty = "bad things",
                    SomeFlagEnum = TestFlagEnum.OneThing
                };

                var newCustomerJObj = JObject.FromObject(newCustomer);

                var deltaGroup = DeltaObjectFromJObjectGenerator.GetDeltaObjects(originalCustomer, newCustomerJObj);

                Assert.NotNull(deltaGroup);
                Assert.Equal(GroupValueConversionStatus.NoneFailed, deltaGroup.ValueConversionStatus);
                Assert.Single(deltaGroup.DeltaObjects);
                Assert.Empty(deltaGroup.DeltaObjectsValueConversionFail);
                Assert.Equal(ValueConversionStatus.Success, deltaGroup.DeltaObjects.First(o =>
                                                                                          o.PropertyName == nameof(TestCustomerWithFlagEnum.SomeFlagEnum)).ValueConversionStatus);
                Assert.Equal(TestFlagEnum.OneThing, deltaGroup.DeltaObjects.First(o =>
                                                                                  o.PropertyName == nameof(TestCustomerWithFlagEnum.SomeFlagEnum)).NewValue);
            }
            public void ReturnsFlagEnumDelta_WhenPropertyHasFlagEnumDelta()
            {
                var originalCustomer = new TestCustomerWithFlagEnum
                {
                    SomeFlagEnum = TestFlagEnum.OneThing
                };

                var newCustomer = new TestCustomerWithFlagEnum
                {
                    SomeFlagEnum = TestFlagEnum.OneThing | TestFlagEnum.SecondThing
                };

                var deltaObjects = DeltaObjectFromObjectGenerator.GetDeltaObjects(originalCustomer, newCustomer);

                Assert.Single(deltaObjects);
            }
            public void ReturnsFlagEnumDelta_WhenNewFlagPropertyHasFewerFlags()
            {
                var originalCustomer = new TestCustomerWithFlagEnum
                {
                    SomeFlagEnum = TestFlagEnum.OneThing | TestFlagEnum.SecondThing
                };

                var newCustomer = new TestCustomerWithFlagEnum
                {
                    SomeFlagEnum = TestFlagEnum.OneThing,
                    FirstName    = "newName"
                };

                var deltaObjects = DeltaObjectFromObjectGenerator.GetDeltaObjects(originalCustomer, newCustomer);

                Assert.Equal(2, deltaObjects.Count);
                Assert.Equal(newCustomer.SomeFlagEnum, deltaObjects.First(o =>
                                                                          o.PropertyName == nameof(TestCustomerWithFlagEnum.SomeFlagEnum)).NewValue);
                Assert.Equal(newCustomer.FirstName, deltaObjects.First(o =>
                                                                       o.PropertyName == nameof(TestCustomerWithFlagEnum.FirstName)).NewValue);
            }