Skip to content

Commit

Permalink
More integration tests for defaulted parameters (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
Voiteh committed Jun 21, 2019
1 parent 0027f08 commit f25fe81
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 7 deletions.
13 changes: 10 additions & 3 deletions test/test/herd/depin/engine/integration/ClassInjectionTest.ceylon
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ import test.herd.depin.engine.integration.model {
Person,
fixture,
DataSource,
DefaultParametersModel
DefaultParametersConstructor,
DefaultedParametersByFunction,
DefaultedParameterFunction
}
shared class ClassInjectionTest() {

Expand All @@ -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);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,9 @@ import test.herd.depin.engine.integration.model {
import herd.depin.engine {
dependency
}
shared dependency String nonDefault=fixture.defaultParameter.nonDefault;
shared dependency String nonDefault=fixture.defaultParameter.nonDefault;


shared dependency String defaultedByFunction(String defaulted=fixture.defaultedParameterByFunction.param){
return defaulted;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}


}
Original file line number Diff line number Diff line change
@@ -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;

}
9 changes: 8 additions & 1 deletion test/test/herd/depin/engine/integration/model/fixture.ceylon
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
}

0 comments on commit f25fe81

Please sign in to comment.