/*
* Copyright (C) 2015 Orange
*
* This software is distributed under the terms and conditions of the 'GNU GENERAL PUBLIC LICENSE
* Version 2' license which can be found in the file 'LICENSE.txt' in this package distribution or
* at 'http://www.gnu.org/licenses/gpl-2.0-standalone.html'.
*/
package com.orange.cepheus.cep;
import com.orange.cepheus.cep.exception.ConfigurationException;
import com.orange.cepheus.cep.exception.PersistenceException;
import com.orange.cepheus.cep.model.Configuration;
import com.orange.cepheus.cep.persistence.Persistence;
import com.orange.cepheus.cep.tenant.TenantFilter;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.beans.factory.annotation.Autowired;
import static org.mockito.Mockito.*;
/**
* Test the Init bean.
*/
@RunWith(MockitoJUnitRunner.class)
public class InitTest {
static Configuration configuration = new Configuration();
@Mock
public ComplexEventProcessor complexEventProcessor;
@Mock
public Persistence persistence;
@Mock
public SubscriptionManager subscriptionManager;
@Mock
public EventMapper eventMapper;
@Autowired
@InjectMocks
public Init init;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
/**
* Check that CEP engine is called when configuration avail during Init initialization
*/
@Test
public void checkConfOk() throws ConfigurationException, PersistenceException {
when(persistence.configurationExists(TenantFilter.DEFAULT_TENANTID)).thenReturn(true);
when(persistence.loadConfiguration(TenantFilter.DEFAULT_TENANTID)).thenReturn(configuration);
init.loadConfigurationOnStartup();
verify(complexEventProcessor).setConfiguration(eq(configuration));
verify(subscriptionManager).setConfiguration(eq(configuration));
verify(eventMapper).setConfiguration(configuration);
}
/**
* Check that the CEP engine is not called when no configuration exist on initialization
*/
public void checkNoConf() throws ConfigurationException, PersistenceException {
when(persistence.configurationExists(TenantFilter.DEFAULT_TENANTID)).thenReturn(false);
when(persistence.loadConfiguration(TenantFilter.DEFAULT_TENANTID)).thenReturn(null);
init.loadConfigurationOnStartup();
verify(complexEventProcessor, never()).setConfiguration(anyObject());
verify(subscriptionManager, never()).setConfiguration(anyObject());
}
@After
public void resetMock() {
reset(complexEventProcessor);
reset(persistence);
reset(subscriptionManager);
}
}