Example #1
0
        /// <summary>
        /// Sets up a mock, and runs through methods as specified by characters in <paramref name="methodOrder"/>.
        /// </summary>
        /// <param name="mockConfigurer">A delegate to use to configure the mock.</param>
        /// <param name="isValid">Whether the order should be valid or not.</param>
        /// <param name="methodOrder">The method order (e.g. "ABC", "ABBC").</param>
        private static void AssertOrderValidity(ConfigureMockDelegate mockConfigurer, bool isValid,
                                                string methodOrder)
        {
            MockRepository mocks = new MockRepository();

            I1 i = mocks.StrictMock(typeof(I1)) as I1;

            mockConfigurer(mocks, i);

            mocks.ReplayAll();

            try
            {
                foreach (char c in methodOrder)
                {
                    switch (c)
                    {
                    case 'A':
                        i.A();
                        break;

                    case 'B':
                        i.B();
                        break;

                    case 'C':
                        i.C();
                        break;

                    default:
                        throw new NotSupportedException();
                    }
                }
                mocks.VerifyAll();
            }
            catch (Exceptions.ExpectationViolationException ex)
            {
                if (isValid)
                {
                    Assert.False(true, string.Format("Order {0} was supposed to be ok, but got error: {1}", methodOrder, ex.Message));
                }
                else
                {
                    return;
                }
            }

            if (!isValid)
            {
                Assert.False(true, string.Format("Order {0} was supposed to fail, but did not.", methodOrder));
            }
        }
Example #2
0
        public void TestOrderedAtLeastOnce()
        {
            ConfigureMockDelegate deleg = new ConfigureMockDelegate(ConfigureOrderedAtLeastOnce);

            // Let's check some of the valid possibilities
            AssertOrderValidity(deleg, true, "ABC");
            AssertOrderValidity(deleg, true, "ABBC");
            AssertOrderValidity(deleg, true, "ABBBBBBBBBBBBBBBBBBBBC");

            // Let's check some invalid ones
            AssertOrderValidity(deleg, false, "BC"); // Missing A
            AssertOrderValidity(deleg, false, "AC"); // Too few Bs
        }
Example #3
0
        public void TestOrderedAtLeastOnce()
        {
            ConfigureMockDelegate deleg = new ConfigureMockDelegate(ConfigureOrderedAtLeastOnce);

            // Let's check some of the valid possibilities
            AssertOrderValidity(deleg, true, "ABC");
            AssertOrderValidity(deleg, true, "ABBC");
            AssertOrderValidity(deleg, true, "ABBBBBBBBBBBBBBBBBBBBC");

            // Let's check some invalid ones
            AssertOrderValidity(deleg, false, "BC"); // Missing A
            AssertOrderValidity(deleg, false, "AC"); // Too few Bs
        }
Example #4
0
        public void TestOrderedTimesMinNonZeroMaxHigherThanMin()
        {
            ConfigureMockDelegate deleg = new ConfigureMockDelegate(ConfigureOrderedTimesMinNonZeroMaxHigherThanMin);

            // Let's check all the valid possibilities
            AssertOrderValidity(deleg, true, "ABC");
            AssertOrderValidity(deleg, true, "ABBC");
            AssertOrderValidity(deleg, true, "ABBBC");

            // Let's check some invalid ones
            AssertOrderValidity(deleg, false, "BC");     // Missing A
            AssertOrderValidity(deleg, false, "AC");     // Too few Bs
            AssertOrderValidity(deleg, false, "ABBBBC"); // Too many Bs
        }
Example #5
0
        public void TestOrderedTimesMin0()
        {
            ConfigureMockDelegate deleg = new ConfigureMockDelegate(ConfigureOrderedTimesMin0);

            // Let's check all the valid possibilities
            AssertOrderValidity(deleg, true, "");
            AssertOrderValidity(deleg, true, "A");
            AssertOrderValidity(deleg, true, "C");
            AssertOrderValidity(deleg, true, "B");
            AssertOrderValidity(deleg, true, "AB");
            AssertOrderValidity(deleg, true, "AC");
            AssertOrderValidity(deleg, true, "BC");
            AssertOrderValidity(deleg, true, "ABC");

            // Let's check some invalid ones
            AssertOrderValidity(deleg, false, "CB");
            AssertOrderValidity(deleg, false, "CA");
            AssertOrderValidity(deleg, false, "BA");
            AssertOrderValidity(deleg, false, "AA");
            AssertOrderValidity(deleg, false, "ABB");
        }
Example #6
0
        public void TestOrderedTimesMin0()
        {
            ConfigureMockDelegate deleg = new ConfigureMockDelegate(ConfigureOrderedTimesMin0);

            // Let's check all the valid possibilities
            AssertOrderValidity(deleg, true, "");
            AssertOrderValidity(deleg, true, "A");
            AssertOrderValidity(deleg, true, "C");
            AssertOrderValidity(deleg, true, "B");
            AssertOrderValidity(deleg, true, "AB");
            AssertOrderValidity(deleg, true, "AC");
            AssertOrderValidity(deleg, true, "BC");
            AssertOrderValidity(deleg, true, "ABC");

            // Let's check some invalid ones
            AssertOrderValidity(deleg, false, "CB");
            AssertOrderValidity(deleg, false, "CA");
            AssertOrderValidity(deleg, false, "BA");
            AssertOrderValidity(deleg, false, "AA");
            AssertOrderValidity(deleg, false, "ABB");
        }
Example #7
0
        /// <summary>
        /// Sets up a mock, and runs through methods as specified by characters in <paramref name="methodOrder"/>.
        /// </summary>
        /// <param name="mockConfigurer">A delegate to use to configure the mock.</param>
        /// <param name="isValid">Whether the order should be valid or not.</param>
        /// <param name="methodOrder">The method order (e.g. "ABC", "ABBC").</param>
        private static void AssertOrderValidity( ConfigureMockDelegate mockConfigurer, bool isValid, 
                                                 string methodOrder )
        {
            MockRepository mocks = new MockRepository();

            I1 i = mocks.StrictMock(typeof(I1)) as I1;

            mockConfigurer(mocks, i);

            mocks.ReplayAll();

            try
            {
                foreach (char c in methodOrder)
                {
                    switch (c)
                    {
                        case 'A':
                            i.A();
                            break;
                        case 'B':
                            i.B();
                            break;
                        case 'C':
                            i.C();
                            break;
                        default:
                            throw new NotSupportedException();
                    }
                }
                mocks.VerifyAll();
            }
            catch (Exceptions.ExpectationViolationException ex)
            {
                if (isValid)
                {
                    Assert.False(true, string.Format("Order {0} was supposed to be ok, but got error: {1}", methodOrder, ex.Message));
                }
                else
                {
                    return;
                }
            }

            if (!isValid)
            {
                Assert.False(true, string.Format("Order {0} was supposed to fail, but did not.", methodOrder));
            }
        }
Example #8
0
        public void TestOrderedTimesMinNonZeroMaxHigherThanMin()
        {
            ConfigureMockDelegate deleg = new ConfigureMockDelegate(ConfigureOrderedTimesMinNonZeroMaxHigherThanMin);

            // Let's check all the valid possibilities
            AssertOrderValidity(deleg, true, "ABC");
            AssertOrderValidity(deleg, true, "ABBC");
            AssertOrderValidity(deleg, true, "ABBBC");

            // Let's check some invalid ones
            AssertOrderValidity(deleg, false, "BC"); // Missing A
            AssertOrderValidity(deleg, false, "AC"); // Too few Bs
            AssertOrderValidity(deleg, false, "ABBBBC"); // Too many Bs
        }