예제 #1
0
        public void IsMatch()
        {
            c = new IsMatch(new Regex(@"^th[aeiou]\w* .*$"));
            Assertion.Assert(c.Eval("the world"));
            Assertion.Assert(!c.Eval("theworld"));
            Assertion.Assert(!c.Eval("ThE world"));
            Assertion.Assert(!c.Eval(" the world"));
            Assertion.Assert(c.Eval("thats nice"));
            Assertion.Assert(!c.Eval(new object()));
            Assertion.Assert(!c.Eval(null));

            c = new IsMatch(@"^th[aeiou]\w* .*$");
            Assertion.Assert(c.Eval("the world"));
            Assertion.Assert(!c.Eval("theworld"));
            Assertion.Assert(!c.Eval("ThE world"));

            c = new IsMatch(@"^th[aeiou]\w* .*$", false);
            Assertion.Assert(c.Eval("the world"));
            Assertion.Assert(!c.Eval("theworld"));
            Assertion.Assert(!c.Eval("ThE world"));

            c = new IsMatch(@"^th[aeiou]\w* .*$", true);
            Assertion.Assert(c.Eval("the world"));
            Assertion.Assert(!c.Eval("theworld"));
            Assertion.Assert(c.Eval("ThE world"));
        }
예제 #2
0
 public void IsType()
 {
     c = new IsTypeOf(typeof(System.IO.TextReader));
     Assertion.Assert(!c.Eval(null));
     Assertion.Assert(c.Eval(new System.IO.StringReader("")));
     Assertion.Assert(!c.Eval(new System.IO.StringWriter()));
 }
예제 #3
0
 public void IsEqualIgnoreCase()
 {
     c = new IsEqualIgnoreCase("heLLo");
     Assertion.Assert(c.Eval("HELLO"));
     Assertion.Assert(c.Eval("hello"));
     Assertion.Assert(c.Eval("HelLo"));
     Assertion.Assert(!c.Eval("abcde"));
 }
예제 #4
0
 public void TestIsEqualIgnoreWhiteSpace()
 {
     c = new IsEqualIgnoreWhiteSpace("Hello World   how\n are we?");
     Assertion.Assert(c.Eval("Hello World how are we?"));
     Assertion.Assert(c.Eval("   Hello World   how are \n\n\twe?"));
     Assertion.Assert(!c.Eval("HelloWorld how are we?"));
     Assertion.Assert(!c.Eval("Hello World how are we"));
 }
예제 #5
0
		public void IsNull()
		{
			c = new IsNull();
			Assertion.Assert(c.Eval(null));
			Assertion.Assert(!c.Eval(new object()));
			Assertion.Assert(!c.Eval(1));
			Assertion.Assert(!c.Eval(true));
			Assertion.Assert(!c.Eval(false));
		}
예제 #6
0
 public void IsNull()
 {
     c = new IsNull();
     Assertion.Assert(c.Eval(null));
     Assertion.Assert(!c.Eval(new object()));
     Assertion.Assert(!c.Eval(1));
     Assertion.Assert(!c.Eval(true));
     Assertion.Assert(!c.Eval(false));
 }
예제 #7
0
 public void Delegate()
 {
     c      = new Constraint(new Constraint.Method(myEval));
     myFlag = false;
     Assertion.Assert(c.Eval(null));
     Assertion.Assert(!c.Eval(null));
     Assertion.Assert(c.Eval(null));
     Assertion.Assert(!c.Eval(null));
 }
예제 #8
0
		public void IsEqualWhenArray()
		{
			object[] o1 = new object[] { 1, 2, 3 };
			object[] o2 = new object[] { 1, 2, 4 };

			c = new IsEqual(new object[] { 1, 2, 3 });
			Assertion.Assert("should be equal", c.Eval(o1));
			Assertion.Assert("shouldn't be equal", !c.Eval(o2));
			Assertion.Assert("it ain't null", !c.Eval(null));
		}
예제 #9
0
        public void IsEqualWhenArray()
        {
            object[] o1 = new object[] { 1, 2, 3 };
            object[] o2 = new object[] { 1, 2, 4 };

            c = new IsEqual(new object[] { 1, 2, 3 });
            Assertion.Assert("should be equal", c.Eval(o1));
            Assertion.Assert("shouldn't be equal", !c.Eval(o2));
            Assertion.Assert("it ain't null", !c.Eval(null));
        }
예제 #10
0
        public void NotIn()
        {
            c = new NotIn(1, 2);
            Assertion.Assert(!c.Eval(1));
            Assertion.Assert(!c.Eval(2));
            Assertion.Assert(c.Eval(3));

            int[] array = { 1, 2 };
            c = new NotIn(array);
            Assertion.Assert(!c.Eval(1));
            Assertion.Assert(!c.Eval(2));
            Assertion.Assert(c.Eval(3));
        }
예제 #11
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Override the Call method so that we can find the return value for the passed-in
        /// parameters.
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns>The return value set up for the passed-in parameters; otherwise
        /// <c>null</c></returns>
        /// ------------------------------------------------------------------------------------
        public override object Call(params object[] parameters)
        {
            // loop over all the set up method calls
            for (int i = 0; i < expectations.Count; i++)
            {
                MockCall mockCall = expectations[i];
                if (parameters.Length != mockCall.ExpectedArgs.Length)
                {
                    continue;
                }

                // Now compare all the parameters
                bool fFoundAllParams = true;
                for (int j = 0; j < parameters.Length; j++)
                {
                    IConstraint constraint = mockCall.ExpectedArgs[j];
                    fFoundAllParams = (fFoundAllParams && constraint.Eval(parameters[j]));
                }

                if (fFoundAllParams)
                {
                    return(mockCall.Call(signature.methodName, parameters));
                }
            }
            return(null);
        }
예제 #12
0
 public void IsAnything()
 {
     c = new IsAnything();
     Assertion.Assert(c.Eval(null));
     Assertion.Assert(c.Eval(0));
     Assertion.Assert(c.Eval(99));
     Assertion.Assert(c.Eval(-2));
     Assertion.Assert(c.Eval(true));
     Assertion.Assert(c.Eval(false));
     Assertion.Assert(c.Eval(""));
     Assertion.Assert(c.Eval("hello"));
     Assertion.Assert(c.Eval(new object()));
 }
예제 #13
0
		public void NotEqual()
		{
			object o1 = new object();
			object o2 = new object();
			c = new NotEqual(o1);
			Assertion.Assert(!c.Eval(o1));
			Assertion.Assert(c.Eval(o2));
			Assertion.Assert(c.Eval(null));

			int i1 = 1;
			int i2 = 2;
			c = new NotEqual(i1);
			Assertion.Assert(!c.Eval(i1));
			Assertion.Assert(!c.Eval(1));
			Assertion.Assert(c.Eval(i2));
			Assertion.Assert(c.Eval(2));
		}
예제 #14
0
        public void IsIn()
        {
            c = new IsIn(2, 3, 5);
            Assertion.Assert(!c.Eval(1));
            Assertion.Assert(c.Eval(2));
            Assertion.Assert(c.Eval(3));
            Assertion.Assert(!c.Eval(4));
            Assertion.Assert(c.Eval(5));
            Assertion.Assert(!c.Eval(6));
            Assertion.Assert(!c.Eval(null));

            int[] array = { 1, 2 };
            c = new IsIn(array);
            Assertion.Assert(c.Eval(1));
            Assertion.Assert(c.Eval(2));
            Assertion.Assert(!c.Eval(3));
        }
예제 #15
0
 private void checkConstraint(string methodName, IConstraint expected, object actual, int index)
 {
     if (!expected.Eval(actual))
     {
         String messageFormat = "{0}() called with incorrect parameter ({1})";
         String message       = String.Format(messageFormat, methodName, index + 1);
         throw new VerifyException(message, expected.Message, actual);
     }
 }
예제 #16
0
        public void NotEqual()
        {
            object o1 = new object();
            object o2 = new object();

            c = new NotEqual(o1);
            Assertion.Assert(!c.Eval(o1));
            Assertion.Assert(c.Eval(o2));
            Assertion.Assert(c.Eval(null));

            int i1 = 1;
            int i2 = 2;

            c = new NotEqual(i1);
            Assertion.Assert(!c.Eval(i1));
            Assertion.Assert(!c.Eval(1));
            Assertion.Assert(c.Eval(i2));
            Assertion.Assert(c.Eval(2));
        }
예제 #17
0
		public void IsAnything()
		{
			c = new IsAnything();
			Assertion.Assert(c.Eval(null));
			Assertion.Assert(c.Eval(0));
			Assertion.Assert(c.Eval(99));
			Assertion.Assert(c.Eval(-2));
			Assertion.Assert(c.Eval(true));
			Assertion.Assert(c.Eval(false));
			Assertion.Assert(c.Eval(""));
			Assertion.Assert(c.Eval("hello"));
			Assertion.Assert(c.Eval(new object()));
		}
        public bool Eval(object val)
        {
            if (!(val is Hashtable))
            {
                message = "Expected Hashtable but was " + val.GetType().FullName;
                return(false);
            }

            Hashtable obtained = val as Hashtable;

            if (expected.Keys.Count != obtained.Keys.Count)
            {
                message = string.Format(System.Globalization.CultureInfo.CurrentCulture, "Expected {0} keys but found {1}", expected.Keys.Count, obtained.Keys.Count);
                return(false);
            }

            foreach (object expectedKey in expected.Keys)
            {
                if (!obtained.ContainsKey(expectedKey))
                {
                    message = "Expected to contain key " + expectedKey;
                    return(false);
                }

                if (expected[expectedKey] is IConstraint)
                {
                    IConstraint ic         = (IConstraint)expected[expectedKey];
                    bool        constraint = ic.Eval(obtained[expectedKey]);
                    message = ic.Message;
                    return(constraint);
                }

                if (expected[expectedKey] is Array)
                {
                    ArrayConstraint ac         = new ArrayConstraint((object[])expected[expectedKey]);
                    bool            constraint = ac.Eval(obtained[expectedKey]);
                    message = ac.Message;
                    return(constraint);
                }

                if (!object.Equals(expected[expectedKey], obtained[expectedKey]))
                {
                    message =
                        string.Format(System.Globalization.CultureInfo.CurrentCulture, "Expected {0} to be {1} but was {2}", expectedKey, expected[expectedKey], obtained[expectedKey]);
                    return(false);
                }
            }

            return(true);
        }
예제 #19
0
        public override bool Eval(object val)
        {
            object actualValue = ExtractActualValue(val);

            if (actualValue == null)
            {
                return(false);
            }
            // split "a.b.c" into "a", "b", "c"
            object propertyValue = actualValue;

            foreach (string propertyBit in property.Split(new char[] { '.' }))
            {
                propertyValue = getProperty(propertyValue, propertyBit);
            }
            return(constraint.Eval(propertyValue));
        }
예제 #20
0
        public bool Eval(object val)
        {
            if (!(val is Array))
            {
                message = "Expected Array but was " + val.GetType().FullName;
                return(false);
            }

            object[] obtained = (object[])val;

            if (expected.Length != obtained.Length)
            {
                message = string.Format(System.Globalization.CultureInfo.CurrentCulture, "Expected {0} values but found {1}", expected.Length, obtained.Length);
                return(false);
            }

            for (int i = 0; i < expected.Length; i++)
            {
                if (expected[i] is IConstraint)
                {
                    IConstraint ic         = (IConstraint)expected[i];
                    bool        constraint = ic.Eval(obtained[i]);
                    message = ic.Message;
                    return(constraint);
                }

                if (expected[i] is Array)
                {
                    ArrayConstraint ac         = new ArrayConstraint((object[])expected[i]);
                    bool            constraint = ac.Eval(obtained[i]);
                    message = ac.Message;
                    return(constraint);
                }

                if (!expected[i].Equals(obtained[i]))
                {
                    message = string.Format(System.Globalization.CultureInfo.CurrentCulture, "Expected {0} but was {1}", expected[i], obtained[i]);
                    return(false);
                }
            }
            return(true);
        }
예제 #21
0
 public override bool Eval(object val)
 {
     return(p.Eval(ExtractActualValue(val)));
 }
예제 #22
0
 public override bool Eval(object val)
 {
     return(p.Eval(StripSpace(ExtractActualValue(val).ToString())));
 }
예제 #23
0
 public void NotNull()
 {
     c = new NotNull();
     Assertion.Assert(!c.Eval(null));
     Assertion.Assert(c.Eval(new object()));
 }
예제 #24
0
        public void IsCloseTo()
        {
            c = new IsCloseTo(1.0, 0.5);

            Assertion.Assert(c.Eval(1.0));
            Assertion.Assert(c.Eval(0.5));
            Assertion.Assert(c.Eval(1.5));

            Assertion.Assert(c.Eval(1));
            Assertion.Assert(c.Eval(0.5f));
            Assertion.Assert(c.Eval(new decimal(1.5)));

            Assertion.Assert(!c.Eval(0.49));
            Assertion.Assert(!c.Eval(1.51));
            Assertion.Assert(!c.Eval(-1.0));

            Assertion.Assert(c.Eval("1.2"));
            Assertion.Assert(!c.Eval("0.2"));
            Assertion.Assert(!c.Eval("hello"));

            Assertion.Assert(!c.Eval(null));
            Assertion.Assert(!c.Eval(0));
            Assertion.Assert(!c.Eval(0.0));
        }
예제 #25
0
		private void checkConstraint(string methodName, IConstraint expected, object actual, int index)
		{
			if (!expected.Eval(actual))
			{
				String messageFormat = "{0}() called with incorrect parameter ({1})";
				String message = String.Format(messageFormat, methodName, index + 1);
				throw new VerifyException(message, expected.Message, actual);
			}
		}
예제 #26
0
		public void NotNull()
		{
			c = new NotNull();
			Assertion.Assert(!c.Eval(null));
			Assertion.Assert(c.Eval(new object()));
		}
예제 #27
0
		public void NotIn()
		{
			c = new NotIn(1, 2);
			Assertion.Assert(!c.Eval(1));
			Assertion.Assert(!c.Eval(2));
			Assertion.Assert(c.Eval(3));

			int[] array = {1, 2};
			c = new NotIn(array);
			Assertion.Assert(!c.Eval(1));
			Assertion.Assert(!c.Eval(2));
			Assertion.Assert(c.Eval(3));
		}
예제 #28
0
		public void IsEqualIgnoreCase()
		{
			c = new IsEqualIgnoreCase("heLLo");
			Assertion.Assert(c.Eval("HELLO"));
			Assertion.Assert(c.Eval("hello"));
			Assertion.Assert(c.Eval("HelLo"));
			Assertion.Assert(!c.Eval("abcde"));
		}
예제 #29
0
		public void TestIsEqualIgnoreWhiteSpace()
		{
			c = new IsEqualIgnoreWhiteSpace("Hello World   how\n are we?");
			Assertion.Assert(c.Eval("Hello World how are we?"));
			Assertion.Assert(c.Eval("   Hello World   how are \n\n\twe?"));
			Assertion.Assert(!c.Eval("HelloWorld how are we?"));
			Assertion.Assert(!c.Eval("Hello World how are we"));
		}
예제 #30
0
		public void IsMatch()
		{
			c = new IsMatch(new Regex(@"^th[aeiou]\w* .*$"));
			Assertion.Assert(c.Eval("the world"));
			Assertion.Assert(!c.Eval("theworld"));
			Assertion.Assert(!c.Eval("ThE world"));
			Assertion.Assert(!c.Eval(" the world"));
			Assertion.Assert(c.Eval("thats nice"));
			Assertion.Assert(!c.Eval(new object()));
			Assertion.Assert(!c.Eval(null));

			c = new IsMatch(@"^th[aeiou]\w* .*$");
			Assertion.Assert(c.Eval("the world"));
			Assertion.Assert(!c.Eval("theworld"));
			Assertion.Assert(!c.Eval("ThE world"));

			c = new IsMatch(@"^th[aeiou]\w* .*$", false);
			Assertion.Assert(c.Eval("the world"));
			Assertion.Assert(!c.Eval("theworld"));
			Assertion.Assert(!c.Eval("ThE world"));

			c = new IsMatch(@"^th[aeiou]\w* .*$", true);
			Assertion.Assert(c.Eval("the world"));
			Assertion.Assert(!c.Eval("theworld"));
			Assertion.Assert(c.Eval("ThE world"));

		}
예제 #31
0
		public void IsType()
		{
			c = new IsTypeOf(typeof(System.IO.TextReader));
			Assertion.Assert(!c.Eval(null));
			Assertion.Assert(c.Eval(new System.IO.StringReader("")));
			Assertion.Assert(!c.Eval(new System.IO.StringWriter()));
		}
예제 #32
0
		public void IsCloseTo()
		{
			c = new IsCloseTo(1.0, 0.5);

			Assertion.Assert(c.Eval(1.0));
			Assertion.Assert(c.Eval(0.5));
			Assertion.Assert(c.Eval(1.5));

			Assertion.Assert(c.Eval(1));
			Assertion.Assert(c.Eval(0.5f));
			Assertion.Assert(c.Eval(new decimal(1.5)));

			Assertion.Assert(!c.Eval(0.49));
			Assertion.Assert(!c.Eval(1.51));
			Assertion.Assert(!c.Eval(-1.0));

			Assertion.Assert(c.Eval("1.2"));
			Assertion.Assert(!c.Eval("0.2"));
			Assertion.Assert(!c.Eval("hello"));

			Assertion.Assert(!c.Eval(null));
			Assertion.Assert(!c.Eval(0));
			Assertion.Assert(!c.Eval(0.0));
		}
예제 #33
0
        public override bool Eval(object val)
        {
            object actualValue = ExtractActualValue(val);

            return(p1.Eval(actualValue) || p2.Eval(actualValue));
        }
예제 #34
0
		public void Delegate()
		{
			c = new Constraint(new Constraint.Method(myEval));
			myFlag = false;
			Assertion.Assert(c.Eval(null));
			Assertion.Assert(!c.Eval(null));
			Assertion.Assert(c.Eval(null));
			Assertion.Assert(!c.Eval(null));
		}
예제 #35
0
		public void IsIn()
		{
			c = new IsIn(2, 3, 5);
			Assertion.Assert(!c.Eval(1));
			Assertion.Assert(c.Eval(2));
			Assertion.Assert(c.Eval(3));
			Assertion.Assert(!c.Eval(4));
			Assertion.Assert(c.Eval(5));
			Assertion.Assert(!c.Eval(6));
			Assertion.Assert(!c.Eval(null));

			int[] array = {1, 2};
			c = new IsIn(array);
			Assertion.Assert(c.Eval(1));
			Assertion.Assert(c.Eval(2));
			Assertion.Assert(!c.Eval(3));
		}