Example #1
0
        public void TestSetup()
        {
            replica1 = new Uri("http://replica");
            replica2 = new Uri("http://replica");
            request  = Request.Get("foo/bar");

            oneReplicaResult = new ClusterResult(
                ClusterResultStatus.ReplicasExhausted,
                new[]
            {
                new ReplicaResult(replica1, Responses.Timeout, ResponseVerdict.Reject, TimeSpan.Zero)
            },
                null,
                request);

            twoReplicasResult = new ClusterResult(
                ClusterResultStatus.ReplicasExhausted,
                new[]
            {
                new ReplicaResult(replica1, Responses.Timeout, ResponseVerdict.Reject, TimeSpan.Zero),
                new ReplicaResult(replica2, Responses.Timeout, ResponseVerdict.Reject, TimeSpan.Zero)
            },
                null,
                request);

            context = Substitute.For <IRequestContext>();
            context.Log.Returns(new SilentLog());
            context.MaximumReplicasToUse.Returns(int.MaxValue);

            options = new ReplicaBudgetingOptions(Guid.NewGuid().ToString(), 1, MinimumRequests, CriticalRatio);
            module  = new ReplicaBudgetingModule(options);
        }
        /// <summary>
        /// Drops all ClusterClient caches. It also drops cache of <see cref="ReplicaBudgetingModule"/> and <see cref="AdaptiveThrottlingModule"/>.
        /// </summary>
        public static void Clean()
        {
            ReplicaBudgetingModule.ClearCache();

            AdaptiveThrottlingModule.ClearCache();

            ReplicaStorageContainer <int> .Shared.Clear();

            ReplicaStorageContainer <long> .Shared.Clear();

            ReplicaStorageContainer <bool> .Shared.Clear();

            ReplicaStorageContainer <double> .Shared.Clear();

            ReplicaStorageContainer <DateTime> .Shared.Clear();

            ReplicaStorageContainer <HealthWithDecay> .Shared.Clear();
        }