/** * */ package org.minnal.instrument.entity.metadata; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.minnal.instrument.entity.DummyModel; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * @author ganeshs * */ public class EntityMetaDataProviderTest { private EntityMetaDataProvider provider; @BeforeMethod public void setup() { provider = spy(EntityMetaDataProvider.instance()); } @Test public void shouldCallBuilderOnlyFirstTime() { EntityMetaDataBuilder builder = mock(EntityMetaDataBuilder.class); when(builder.build()).thenReturn(mock(EntityMetaData.class)); doReturn(builder).when(provider).getEntityMetaDataBuilder(DummyModel.class); provider.getEntityMetaData(DummyModel.class); verify(builder).build(); provider.getEntityMetaData(DummyModel.class); verify(builder, times(1)).build(); } }