diff --git a/test/test/herd/depin/engine/integration/ClassInjectionTest.ceylon b/test/test/herd/depin/engine/integration/ClassInjectionTest.ceylon index bbed9df..522b48d 100644 --- a/test/test/herd/depin/engine/integration/ClassInjectionTest.ceylon +++ b/test/test/herd/depin/engine/integration/ClassInjectionTest.ceylon @@ -10,7 +10,9 @@ import test.herd.depin.engine.integration.model { Person, fixture, DataSource, - DefaultParametersModel + DefaultParametersConstructor, + DefaultedParametersByFunction, + DefaultedParameterFunction } shared class ClassInjectionTest() { @@ -26,7 +28,12 @@ shared class ClassInjectionTest() { assert(depin.inject(`DataSource`)==fixture.dataSouce.mysqlDataSource); } shared test void shouldInjectNonDefaultParameters(){ - assert(depin.inject(`DefaultParametersModel`)==fixture.defaultParameter.instance); + assert(depin.inject(`DefaultParametersConstructor`)==fixture.defaultParameter.instance); + } + shared test void shouldInjectDefaultedParameterFromFunction(){ + assert(depin.inject(`DefaultedParametersByFunction`)==fixture.defaultedParameterByFunction.instance); + } + shared test void shouldInjectDefaultedParameterClassFunction(){ + assert(depin.inject(`DefaultedParameterFunction`).fun()==fixture.defaultedParameterFunction.param); } - } \ No newline at end of file diff --git a/test/test/herd/depin/engine/integration/dependencies/defaultParametersDependencies.ceylon b/test/test/herd/depin/engine/integration/dependencies/defaultParametersDependencies.ceylon index 52f7aca..38b8135 100644 --- a/test/test/herd/depin/engine/integration/dependencies/defaultParametersDependencies.ceylon +++ b/test/test/herd/depin/engine/integration/dependencies/defaultParametersDependencies.ceylon @@ -4,4 +4,9 @@ import test.herd.depin.engine.integration.model { import herd.depin.engine { dependency } -shared dependency String nonDefault=fixture.defaultParameter.nonDefault; \ No newline at end of file +shared dependency String nonDefault=fixture.defaultParameter.nonDefault; + + +shared dependency String defaultedByFunction(String defaulted=fixture.defaultedParameterByFunction.param){ + return defaulted; +} diff --git a/test/test/herd/depin/engine/integration/model/DefaultParametersModel.ceylon b/test/test/herd/depin/engine/integration/model/DefaultParametersConstructor.ceylon similarity index 65% rename from test/test/herd/depin/engine/integration/model/DefaultParametersModel.ceylon rename to test/test/herd/depin/engine/integration/model/DefaultParametersConstructor.ceylon index ec0a8ee..fea3693 100644 --- a/test/test/herd/depin/engine/integration/model/DefaultParametersModel.ceylon +++ b/test/test/herd/depin/engine/integration/model/DefaultParametersConstructor.ceylon @@ -1,8 +1,8 @@ -shared class DefaultParametersModel(shared String nonDefault,shared String defaultedParameter=fixture.defaultParameter.text) { +shared class DefaultParametersConstructor(shared String nonDefault,shared String defaultedParameter=fixture.defaultParameter.text) { shared actual Boolean equals(Object that) { - if (is DefaultParametersModel that) { + if (is DefaultParametersConstructor that) { return nonDefault==that.nonDefault && defaultedParameter==that.defaultedParameter; } diff --git a/test/test/herd/depin/engine/integration/model/DefaultedParameterFunction.ceylon b/test/test/herd/depin/engine/integration/model/DefaultedParameterFunction.ceylon new file mode 100644 index 0000000..ac2fb69 --- /dev/null +++ b/test/test/herd/depin/engine/integration/model/DefaultedParameterFunction.ceylon @@ -0,0 +1,18 @@ +shared class DefaultedParameterFunction(shared String fun()=> fixture.defaultedParameterFunction.param) { + + shared actual Boolean equals(Object that) { + if (is DefaultedParameterFunction that) { + return true; + } + else { + return false; + } + } + + shared actual Integer hash { + variable value hash = 1; + return hash; + } + + +} \ No newline at end of file diff --git a/test/test/herd/depin/engine/integration/model/DefaultedParametersByFunction.ceylon b/test/test/herd/depin/engine/integration/model/DefaultedParametersByFunction.ceylon new file mode 100644 index 0000000..d8bb710 --- /dev/null +++ b/test/test/herd/depin/engine/integration/model/DefaultedParametersByFunction.ceylon @@ -0,0 +1,15 @@ +shared class DefaultedParametersByFunction(shared String defaultedByFunction) { + + + shared actual Boolean equals(Object that) { + if (is DefaultedParametersByFunction that) { + return defaultedByFunction==that.defaultedByFunction; + } + else { + return false; + } + } + + shared actual Integer hash => defaultedByFunction.hash; + +} \ No newline at end of file diff --git a/test/test/herd/depin/engine/integration/model/fixture.ceylon b/test/test/herd/depin/engine/integration/model/fixture.ceylon index 8a83e25..82b990e 100644 --- a/test/test/herd/depin/engine/integration/model/fixture.ceylon +++ b/test/test/herd/depin/engine/integration/model/fixture.ceylon @@ -14,6 +14,13 @@ shared object fixture { shared object defaultParameter{ shared String nonDefault="Abc"; shared String text="abc"; - shared DefaultParametersModel instance=DefaultParametersModel(nonDefault,text) ; + shared DefaultParametersConstructor instance=DefaultParametersConstructor(nonDefault,text) ; + } + shared object defaultedParameterByFunction{ + shared String param="abc"; + shared DefaultedParametersByFunction instance= DefaultedParametersByFunction(param); + } + shared object defaultedParameterFunction { + shared String param = "abc"; } } \ No newline at end of file