From 7f2ab1f9e2df3a16c500bc207ca36351950f5fc3 Mon Sep 17 00:00:00 2001 From: Hilari Moragrega Date: Wed, 6 Dec 2017 12:31:04 +0100 Subject: [PATCH] Create null balancer shortcut --- spec/BalancerBuilderSpec.php | 11 +++++++++++ src/BalancerBuilder.php | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/spec/BalancerBuilderSpec.php b/spec/BalancerBuilderSpec.php index fda1007..4a9222e 100644 --- a/spec/BalancerBuilderSpec.php +++ b/spec/BalancerBuilderSpec.php @@ -25,4 +25,15 @@ function it_can_build_the_balancer(Monitor $monitor, LoggerInterface $logger) "feature_2" => ["bar" => 20, "rab" => 40, "arb" => 40] ])->shouldImplement(BalancerInterface::class); } + + function it_can_build_a_null_balancer() + { + $balancer = $this->createNullBalancer([ + "feature_1" => ["foo" => 50, "off" => 50], + "feature_2" => ["bar" => 20, "rab" => 40, "arb" => 40] + ]); + + $balancer->shouldImplement(BalancerInterface::class); + $balancer->get("feature_1")->shouldReturn(""); + } } diff --git a/src/BalancerBuilder.php b/src/BalancerBuilder.php index 1ffb033..92360e1 100644 --- a/src/BalancerBuilder.php +++ b/src/BalancerBuilder.php @@ -62,6 +62,14 @@ public function create(array $config = []) return $balancer; } + /** + * @return BalancerInterface + */ + public function createNullBalancer() + { + return new ExceptionSilencerDecorator(new Balancer()); + } + /** * @param Monitor $monitor * @param string $metric