public void XOR_AllTrue_Null()
        {
            // Arrange
            IConditionModifier modifier = new XORModifier();

            // Act
            Action action = () => modifier.IsConditionMet(true, null);

            // Assert
            Assert.ThrowsException <InvalidCastException>(action);
        }
        public void XOR_AllTrue_Null()
        {
            // Arrange
            IConditionModifier modifier = new XORModifier();

            // Act
            Action action = () => modifier.IsConditionMet(true, null);

            // Assert
            Assert.ThrowsException<InvalidCastException>(action);
        }
        public void XOR_AllTrue_Single()
        {
            // Arrange
            bool result;
            IConditionModifier modifier = new XORModifier();

            // Act
            result = modifier.IsConditionMet(true, true);

            // Assert
            Assert.IsTrue(result);
        }
        public void XOR_NotAllTrue_Single()
        {
            // Arrange
            bool result;
            IConditionModifier modifier = new XORModifier();

            // Act
            result = modifier.IsConditionMet(true, false);

            // Assert
            Assert.IsFalse(result);
        }
        public void XOR_AllTrue_Multiple()
        {
            // Arrange
            bool result;
            var inputs = new[] { true, true, true };
            IConditionModifier modifier = new XORModifier();

            // Act
            result = modifier.IsConditionMet(true, inputs.ToArray());

            // Assert
            Assert.IsFalse(result);
        }
        public void XOR_AllowNullValue_ConditionNotMet()
        {
            // Arrange
            bool result;
            IConditionModifier modifier = new XORModifier();
            modifier.TreatNullAsConditionNotMet = true;

            // Act
            result = modifier.IsConditionMet(null, null);

            // Assert
            Assert.IsFalse(result);
        }
        public void XOR_AllTrue_Multiple()
        {
            // Arrange
            bool result;
            var  inputs = new[] { true, true, true };
            IConditionModifier modifier = new XORModifier();

            // Act
            result = modifier.IsConditionMet(true, inputs.ToArray());

            // Assert
            Assert.IsFalse(result);
        }
        public void XOR_AllowNullValue_ConditionNotMet()
        {
            // Arrange
            bool result;
            IConditionModifier modifier = new XORModifier();

            modifier.TreatNullAsConditionNotMet = true;

            // Act
            result = modifier.IsConditionMet(null, null);

            // Assert
            Assert.IsFalse(result);
        }