package org.arquillian.cube.impl.client; import org.arquillian.cube.spi.BaseCube; import org.arquillian.cube.spi.Binding; import org.arquillian.cube.spi.Cube; import org.arquillian.cube.spi.CubeControlException; import org.arquillian.cube.spi.metadata.CubeMetadata; import org.junit.Assert; import org.junit.Test; public class CubeMetadataTest { @Test public void shouldReportCorrectStateOfMetadata() { Cube<?> cube = new TestCube(); cube.addMetadata(TestMetadata.class, new TestMetadataImpl()); Assert.assertTrue(cube.hasMetadata(TestMetadata.class)); } @Test public void shouldGetCorrectMetadata() { Cube<?> cube = new TestCube(); cube.addMetadata(TestMetadata.class, new TestMetadataImpl()); TestMetadata metadata = cube.getMetadata(TestMetadata.class); Assert.assertTrue(metadata instanceof TestMetadataImpl); } private static interface TestMetadata extends CubeMetadata { String get(); } private static class TestMetadataImpl implements TestMetadata { @Override public String get() { return "A"; } } private static class TestCube extends BaseCube<Void> { @Override public org.arquillian.cube.spi.Cube.State state() { return null; } @Override public String getId() { return null; } @Override public void create() throws CubeControlException { } @Override public void start() throws CubeControlException { } @Override public void stop() throws CubeControlException { } @Override public void destroy() throws CubeControlException { } @Override public boolean isRunningOnRemote() { return false; } @Override public void changeToPreRunning() { } @Override public Binding bindings() { return null; } @Override public Binding configuredBindings() { return null; } @Override public Void configuration() { return null; } } }