/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.config.spring.factories; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.sameInstance; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import org.mule.runtime.core.api.MuleContext; import org.mule.runtime.api.exception.MuleException; import org.mule.runtime.core.api.context.MuleContextAware; import org.mule.runtime.api.lifecycle.Disposable; import org.mule.runtime.api.lifecycle.Initialisable; import org.mule.runtime.api.lifecycle.InitialisationException; import org.mule.runtime.api.lifecycle.Lifecycle; import org.mule.runtime.api.lifecycle.Stoppable; import org.mule.tck.junit4.AbstractMuleTestCase; import org.mule.tck.size.SmallTest; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) @SmallTest public class ConstantFactoryBeanTestCase extends AbstractMuleTestCase { @Mock(extraInterfaces = {Lifecycle.class, MuleContextAware.class}) private Object value; private ConstantFactoryBean<Object> factoryBean; @Before public void before() throws Exception { factoryBean = new ConstantFactoryBean<>(value); } @Test public void returnsValue() throws Exception { assertThat(factoryBean.getObject(), is(sameInstance(value))); } @Test public void singleton() { assertThat(factoryBean.isSingleton(), is(true)); } @Test public void assertClass() { assertThat(factoryBean.getObjectType() == value.getClass(), is(true)); } @Test public void setMuleContext() { MuleContext muleContext = mock(MuleContext.class); factoryBean.setMuleContext(muleContext); verify((MuleContextAware) value).setMuleContext(muleContext); } @Test public void initialise() throws InitialisationException { factoryBean.initialise(); verify((Initialisable) value).initialise(); } @Test public void stop() throws MuleException { factoryBean.stop(); verify((Stoppable) value).stop(); } @Test public void dispose() throws Exception { factoryBean.dispose(); verify((Disposable) value).dispose(); } }