Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
fluttertpc_get
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Jermaine McFarlane
2021-07-21 21:36:17 -0500
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
fa3939ed00c71f76a10487b6492eaad613c6f984
fa3939ed
1 parent
23514434
use replace with only parent or generic class
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
35 deletions
lib/get_instance/src/extension_instance.dart
test/instance/get_instance_test.dart
lib/get_instance/src/extension_instance.dart
View file @
fa3939e
...
...
@@ -132,7 +132,7 @@ extension Inst on GetInterface {
/// Replace a parent instance of a class in dependency management
/// with a [child] instance
/// - [tag] optional, if you use a [tag] to register the Instance.
void
replace
<
P
,
C
extends
P
>(
C
child
,
{
String
?
tag
})
{
void
replace
<
P
>(
P
child
,
{
String
?
tag
})
{
final
info
=
GetInstance
().
getInstanceInfo
<
P
>(
tag:
tag
);
final
permanent
=
(
info
.
isPermanent
??
false
);
delete
<
P
>(
tag:
tag
,
force:
permanent
);
...
...
test/instance/get_instance_test.dart
View file @
fa3939e
...
...
@@ -10,7 +10,9 @@ class Mock {
}
}
class
DisposableController
extends
GetLifeCycle
{}
abstract
class
MyController
extends
GetLifeCycle
{}
class
DisposableController
extends
MyController
{}
// ignore: one_member_abstracts
abstract
class
Service
{
...
...
@@ -157,42 +159,49 @@ void main() {
});
});
test
(
'Get.replace test for replacing temporary parent instance with child'
,
()
async
{
Get
.
put
(
DisposableController
());
Get
.
replace
<
DisposableController
,
Controller
>(
Controller
());
final
instance
=
Get
.
find
<
DisposableController
>();
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
group
(
'Get.replace test for replacing parent instance that is'
,
()
{
test
(
'temporary'
,
()
async
{
Get
.
put
(
DisposableController
());
Get
.
replace
<
DisposableController
>(
Controller
());
final
instance
=
Get
.
find
<
DisposableController
>();
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
test
(
'Get.replace test for replacing permanent parent instance with child'
,
()
async
{
Get
.
put
(
DisposableController
(),
permanent:
true
);
Get
.
replace
<
DisposableController
,
Controller
>(
Controller
());
final
instance
=
Get
.
find
<
DisposableController
>();
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
test
(
'permanent'
,
()
async
{
Get
.
put
(
DisposableController
(),
permanent:
true
);
Get
.
replace
<
DisposableController
>(
Controller
());
final
instance
=
Get
.
find
<
DisposableController
>();
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
test
(
'Get.replace test for replacing tagged temporary instance with child'
,
()
async
{
final
tag
=
'tag'
;
Get
.
put
(
DisposableController
(),
tag:
tag
);
Get
.
replace
<
DisposableController
,
Controller
>(
Controller
(),
tag:
tag
);
final
instance
=
Get
.
find
<
DisposableController
>(
tag:
tag
);
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
test
(
'tagged temporary'
,
()
async
{
final
tag
=
'tag'
;
Get
.
put
(
DisposableController
(),
tag:
tag
);
Get
.
replace
<
DisposableController
>(
Controller
(),
tag:
tag
);
final
instance
=
Get
.
find
<
DisposableController
>(
tag:
tag
);
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
test
(
'Get.replace test for replacing tagged parent instance with child'
,
()
async
{
final
tag
=
'tag'
;
Get
.
put
(
DisposableController
(),
permanent:
true
,
tag:
tag
);
Get
.
replace
<
DisposableController
,
Controller
>(
Controller
(),
tag:
tag
);
final
instance
=
Get
.
find
<
DisposableController
>(
tag:
tag
);
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
test
(
'tagged permanent'
,
()
async
{
final
tag
=
'tag'
;
Get
.
put
(
DisposableController
(),
permanent:
true
,
tag:
tag
);
Get
.
replace
<
DisposableController
>(
Controller
(),
tag:
tag
);
final
instance
=
Get
.
find
<
DisposableController
>(
tag:
tag
);
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
test
(
'a generic parent type'
,
()
async
{
final
tag
=
'tag'
;
Get
.
put
<
MyController
>(
DisposableController
(),
permanent:
true
,
tag:
tag
);
Get
.
replace
<
MyController
>(
Controller
(),
tag:
tag
);
final
instance
=
Get
.
find
<
MyController
>(
tag:
tag
);
expect
(
instance
is
Controller
,
isTrue
);
expect
((
instance
as
Controller
).
init
,
greaterThan
(
0
));
});
});
}
...
...
Please
register
or
login
to post a comment