From 5d28db4f3ac7715f952fddcac86aee9088fd942f Mon Sep 17 00:00:00 2001 From: Peter Leibiger Date: Wed, 23 Oct 2024 17:08:10 +0200 Subject: [PATCH] Adjust and add tests for popScopesTill --- test/scope_test.dart | 75 +++++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 22 deletions(-) diff --git a/test/scope_test.dart b/test/scope_test.dart index 7971550..e89f430 100644 --- a/test/scope_test.dart +++ b/test/scope_test.dart @@ -330,6 +330,7 @@ void main() { expect(isShadowed, false); expect(shadowingObject, shadowingInstance); }); + test('popscope', () async { final getIt = GetIt.instance; constructorCounter = 0; @@ -362,63 +363,92 @@ void main() { ); }); - test('popscopeuntil inclusive=true', () async { + test('popScopesTill inclusive=true', () async { final getIt = GetIt.instance; constructorCounter = 0; getIt.registerSingleton(TestClass('Basescope')); getIt.pushNewScope(scopeName: 'Level1'); - - getIt.registerSingleton(TestClass('2. scope')); + getIt.registerSingleton(TestClass('1. scope')); getIt.pushNewScope(scopeName: 'Level2'); + getIt.registerSingleton(TestClass('2. scope')); + getIt.pushNewScope(scopeName: 'Level3'); getIt.registerSingleton(TestClass('3. scope')); + expect(getIt.get().id, '3. scope'); - final instanceTestClassScope3 = getIt.get(); - - expect(instanceTestClassScope3.id, '3. scope'); + await getIt.popScopesTill('Level2'); - await getIt.popScopesTill('Level1'); - - final instanceTestClassScope1 = getIt.get(); - - expect(instanceTestClassScope1.id, 'Basescope'); + expect(getIt.get().id, '1. scope'); expect( () => getIt.get(), throwsStateError, ); }); - test('popscopeuntil inclusive=false', () async { + + test('popScopesTill inclusive=false', () async { final getIt = GetIt.instance; constructorCounter = 0; getIt.registerSingleton(TestClass('Basescope')); getIt.pushNewScope(scopeName: 'Level1'); - - getIt.registerSingleton(TestClass('2. scope')); + getIt.registerSingleton(TestClass('1. scope')); getIt.pushNewScope(scopeName: 'Level2'); + getIt.registerSingleton(TestClass('2. scope')); + getIt.pushNewScope(scopeName: 'Level3'); getIt.registerSingleton(TestClass('3. scope')); + expect(getIt.get().id, '3. scope'); - final instanceTestClassScope3 = getIt.get(); - - expect(instanceTestClassScope3.id, '3. scope'); + await getIt.popScopesTill('Level2', inclusive: false); - await getIt.popScopesTill('Level1', inclusive: false); - - final instanceTestClassScope1 = getIt.get(); - - expect(instanceTestClassScope1.id, '2. scope'); + expect(getIt.get().id, '2. scope'); expect( () => getIt.get(), throwsStateError, ); }); + test('popScopesTill invalid scope', () async { + final getIt = GetIt.instance; + + getIt.pushNewScope(scopeName: 'Level1'); + getIt.pushNewScope(scopeName: 'Level2'); + getIt.pushNewScope(scopeName: 'Level3'); + + expect(getIt.hasScope('Level1'), isTrue); + expect(getIt.hasScope('Level2'), isTrue); + expect(getIt.hasScope('Level3'), isTrue); + + await getIt.popScopesTill('Level4'); + + expect(getIt.hasScope('Level1'), isTrue); + expect(getIt.hasScope('Level2'), isTrue); + expect(getIt.hasScope('Level3'), isTrue); + }); + + test('popScopesTill inclusive=false top scope', () async { + final getIt = GetIt.instance; + + getIt.pushNewScope(scopeName: 'Level1'); + getIt.pushNewScope(scopeName: 'Level2'); + getIt.pushNewScope(scopeName: 'Level3'); + + expect(getIt.hasScope('Level1'), isTrue); + expect(getIt.hasScope('Level2'), isTrue); + expect(getIt.hasScope('Level3'), isTrue); + + await getIt.popScopesTill('Level3', inclusive: false); + + expect(getIt.hasScope('Level1'), isTrue); + expect(getIt.hasScope('Level2'), isTrue); + expect(getIt.hasScope('Level3'), isTrue); + }); + test('popscope with destructors', () async { final getIt = GetIt.instance; @@ -446,6 +476,7 @@ void main() { expect(disposeCounter, 3); }); + test('popscope with destructors', () async { final getIt = GetIt.instance;