Allow customization of all fixture state at once
Adds FixtureCustomPreparer.
Bug: 181070625
Test: m nothing
Change-Id: I310e16661a0f032f778481d9b69da2e0e9a084cf
diff --git a/android/fixture.go b/android/fixture.go
index 4e445c0..f213d66 100644
--- a/android/fixture.go
+++ b/android/fixture.go
@@ -252,6 +252,15 @@
return FixtureMergeMockFs(fs)
}
+// FixtureCustomPreparer allows for the modification of any aspect of the fixture.
+//
+// This should only be used if one of the other more specific preparers are not suitable.
+func FixtureCustomPreparer(mutator func(fixture Fixture)) FixturePreparer {
+ return newSimpleFixturePreparer(func(f *fixture) {
+ mutator(f)
+ })
+}
+
// Modify the config
func FixtureModifyConfig(mutator func(config Config)) FixturePreparer {
return newSimpleFixturePreparer(func(f *fixture) {
@@ -564,6 +573,15 @@
// Fixture defines the test environment.
type Fixture interface {
+ // Config returns the fixture's configuration.
+ Config() Config
+
+ // Context returns the fixture's test context.
+ Context() *TestContext
+
+ // MockFS returns the fixture's mock filesystem.
+ MockFS() MockFS
+
// Run the test, checking any errors reported and returning a TestResult instance.
RunTest() *TestResult
}
@@ -702,6 +720,18 @@
errorHandler FixtureErrorHandler
}
+func (f *fixture) Config() Config {
+ return f.config
+}
+
+func (f *fixture) Context() *TestContext {
+ return f.ctx
+}
+
+func (f *fixture) MockFS() MockFS {
+ return f.mockFS
+}
+
func (f *fixture) RunTest() *TestResult {
f.t.Helper()