From a2a86c6eb1a4fb6959d4d8dc2c2c054f0afaad4c Mon Sep 17 00:00:00 2001 From: Mike Cochrane Date: Thu, 5 Oct 2017 04:52:53 +0000 Subject: [PATCH] Implement Resettable interface on SubsiteState so it gets reset between unit tests --- src/State/SubsiteState.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/State/SubsiteState.php b/src/State/SubsiteState.php index 56b88e2..8bd5b0c 100644 --- a/src/State/SubsiteState.php +++ b/src/State/SubsiteState.php @@ -4,11 +4,12 @@ namespace SilverStripe\Subsites\State; use SilverStripe\Core\Injector\Injectable; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Core\Resettable; /** * SubsiteState provides static access to the current state for subsite related data during a request */ -class SubsiteState +class SubsiteState implements Resettable { use Injectable; @@ -106,4 +107,22 @@ class SubsiteState Injector::inst()->registerService($this); } } + + /** + * Reset the local cache of the singleton + */ + public static function reset() + { + SubsiteState::singleton()->resetState(); + } + + /** + * Reset the local cache of this object + */ + public function resetState() + { + $this->originalSubsiteId = null; + $this->subsiteId = null; + $this->useSessions = null; + } }