private static IDisposable SetOrderedFactoryAsCurrentAndGetResetter(OrderedFakeAsserterFactory orderedFactory)
        {
            var resetter = new AsserterResetter { ResetTo = currentAsserterFactoryField };

            currentAsserterFactoryField = orderedFactory.CreateAsserter;

            return resetter;
        }
        public void Should_call_ordered_asserter()
        {
            // Arrange
            var innerAsserter = A.Fake<FakeAsserter>();
            var orderedAsserter = A.Fake<OrderedFakeAsserter>();

            var factory = new OrderedFakeAsserterFactory(x => innerAsserter, orderedAsserter);

            Func<IFakeObjectCall, bool> callPredicate = x => true;
            Func<int, bool> repeatPredicate = x => true;

            // Act
            var asserter = factory.CreateAsserter(Enumerable.Empty<IFakeObjectCall>());
            asserter.AssertWasCalled(callPredicate, "call description", repeatPredicate, "repeat description");

            // Assert
            A.CallTo(() => orderedAsserter.AssertWasCalled(callPredicate, "call description", repeatPredicate, "repeat description")).MustHaveHappened();
        }