Esempio n. 1
0
        public void AdaptiveLoadBalancingPool_Should_be_serializable()
        {
            var simplePool = new AdaptiveLoadBalancingPool();

            CheckSerialization(simplePool);

            var complicatedPool = new AdaptiveLoadBalancingPool(
                metricsSelector: new MixMetricsSelector(new CapacityMetricsSelector[]
            {
                CpuMetricsSelector.Instance,
                MemoryMetricsSelector.Instance,
            }.ToImmutableArray()),
                nrOfInstances: 7,
                routerDispatcher: "my-dispatcher",
                usePoolDispatcher: true
                );

            CheckSerialization(complicatedPool);
        }
        private byte[] AdaptiveLoadBalancingPoolToBinary(Metrics.AdaptiveLoadBalancingPool pool)
        {
            var proto = new AdaptiveLoadBalancingPool()
            {
                NrOfInstances     = (uint)pool.NrOfInstances,
                UsePoolDispatcher = pool.UsePoolDispatcher
            };

            if (!pool.MetricsSelector.Equals(Metrics.MixMetricsSelector.Instance))
            {
                proto.MetricsSelector = MetricsSelectorToProto(pool.MetricsSelector);
            }

            if (pool.RouterDispatcher != Dispatchers.DefaultDispatcherId)
            {
                proto.RouterDispatcher = pool.RouterDispatcher;
            }

            return(proto.ToByteArray());
        }