public void Test(ITestLogger logger)
        {
            Logger = logger;
            var timer = new TestActionTimer(logger);
            LoadConfigurationSettingsOnce(this);
            InitializeEntityIds();
            if (EntityIds != null && EntityIds.Count > 0)
            {
                timer.Time(PopulateEntityReferences, "Initialization Entity Reference (ms): ");
            }
            using (var internalService = GetInternalOrganizationServiceProxy())
            {
                // ReSharper disable once AccessToDisposedClosure
                timer.Time(() => CleanupTestData(internalService, false), "Cleanup PreTestData (ms): ");

                try
                {
                    // ReSharper disable once AccessToDisposedClosure
                    timer.Time(() => ValidateAssumptions(internalService), "Validate Assumptions (ms): ");

                    var service = GetIOrganizationService();
                    AssertCrm = new AssertCrm(service);

                    timer.Time(() => InitializeTestData(service), "Initialize TestData (ms): ");
                    timer.Time(() => Test(service), "Run Test (ms): ");
                }
                finally
                {
                    // ReSharper disable once AccessToDisposedClosure
                    timer.Time(() => CleanupTestData(internalService, true), "Cleanup PostTestData (ms): ");
                }
            }
        }
 public FakeIOrganizationService(IOrganizationService service, ITestLogger logger)
     : base(service)
 {
     Timer = new TestActionTimer(logger);
     RedirectExecuteRequestsToOrganizationServiceRequest = true;
 }