public function provideFlags()
{
$emptyFlagBag = new FlagBag('user0');
(yield 'empty flagbag' => [$this->createFixtureWithFlags($emptyFlagBag), false, false, []]);
$flagBagWithNonTemplateFlag = $emptyFlagBag->withFlag(new DummyFlag());
(yield 'flagbag with non-templating element' => [$this->createFixtureWithFlags($flagBagWithNonTemplateFlag), false, false, []]);
$templateFlagBag = $emptyFlagBag->withFlag(new TemplateFlag());
(yield 'flagbag with template' => [$this->createFixtureWithFlags($templateFlagBag), true, false, []]);
$extendsFlagBag = $emptyFlagBag->withFlag(new ExtendFlag(new FixtureReference('user_base0')))->withFlag(new ExtendFlag(new FixtureReference('user_base1')));
(yield 'flagbag with extends' => [$this->createFixtureWithFlags($extendsFlagBag), false, true, [new FixtureReference('user_base1'), new FixtureReference('user_base0')]]);
$templateAndExtendsFlagBag = $emptyFlagBag->withFlag(new TemplateFlag())->withFlag(new ExtendFlag(new FixtureReference('user_base0')))->withFlag(new ExtendFlag(new FixtureReference('user_base1')))->withFlag(new DummyFlag());
(yield 'flagbag with template, extends and non templating flags' => [$this->createFixtureWithFlags($templateAndExtendsFlagBag), true, true, [new FixtureReference('user_base1'), new FixtureReference('user_base0')]]);
}