Repository: zest-java Updated Branches: refs/heads/develop 1c16db222 -> 44d9724c3
Adding an extra test for ServiceActivation Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/44d9724c Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/44d9724c Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/44d9724c Branch: refs/heads/develop Commit: 44d9724c3bd3a7994ebd6538edfc0f86abbbc13e Parents: 1c16db2 Author: Niclas Hedhman <[email protected]> Authored: Sat Nov 7 20:17:17 2015 +0800 Committer: Niclas Hedhman <[email protected]> Committed: Sat Nov 7 20:17:17 2015 +0800 ---------------------------------------------------------------------- .../zest/bootstrap/ServiceAssemblyTest.java | 93 ++++++++++++++++++++ 1 file changed, 93 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/44d9724c/core/runtime/src/test/java/org/apache/zest/bootstrap/ServiceAssemblyTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/zest/bootstrap/ServiceAssemblyTest.java b/core/runtime/src/test/java/org/apache/zest/bootstrap/ServiceAssemblyTest.java new file mode 100644 index 0000000..cead646 --- /dev/null +++ b/core/runtime/src/test/java/org/apache/zest/bootstrap/ServiceAssemblyTest.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +package org.apache.zest.bootstrap; + +import org.apache.zest.api.mixin.Mixins; +import org.apache.zest.api.service.ServiceActivation; +import org.apache.zest.api.service.ServiceReference; +import org.apache.zest.test.AbstractZestTest; +import org.junit.Test; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +public class ServiceAssemblyTest extends AbstractZestTest +{ + @Test + public void givenMyServiceWithTwoDeclarationsWhenActivatingServiceExpectServiceActivatedOnce() + throws Exception + { + ServiceReference<MyService> ref = module.findService( MyService.class ); + MyService underTest = ref.get(); + assertThat(underTest.activated(), equalTo(1)); + underTest.passivateService(); + assertThat(underTest.passivated(), equalTo(1)); + } + + @Override + public void assemble( ModuleAssembly module ) + throws AssemblyException + { + module.services( MyService.class ).instantiateOnStartup(); + module.services( MyService.class ).setMetaInfo( "Hello" ); + } + + @Mixins( MyServiceMixin.class ) + public static interface MyService extends ServiceActivation + { + int activated(); + int passivated(); + } + + public static class MyServiceMixin implements MyService, ServiceActivation + { + + private int activated; + private int passivated; + + @Override + public int activated() + { + return activated; + } + + @Override + public int passivated() + { + return passivated; + } + + @Override + public void activateService() + throws Exception + { + activated++; + } + + @Override + public void passivateService() + throws Exception + { + passivated++; + + } + } +}
