package org.onap.policy.clamp.acm.element.handler;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.junit.jupiter.api.Test;
import org.onap.policy.clamp.acm.element.main.parameters.AcElement;
import org.onap.policy.clamp.acm.element.service.ElementService;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionRuntimeException;
import org.onap.policy.clamp.models.acm.messages.dmaap.element.ElementStatus;
import org.onap.policy.clamp.models.acm.messages.rest.element.ElementConfig;
import org.onap.policy.clamp.models.acm.messages.rest.element.ElementType;
private static final String NAME = "name";
private static final String VERSION = "1.0.0";
+ private static final String TOPIC = "topic";
@Test
void testAppliesTo() {
assertThat(messageHandler.appliesTo(new ToscaConceptIdentifier(NAME, VERSION))).isTrue();
}
+ @Test
+ void testWrongConf() {
+ var starter = createMockElementService(ElementType.STARTER);
+ var bridge = createMockElementService(ElementType.BRIDGE);
+ var messageHandler = createMessageHandler(List.of(starter, bridge));
+
+ assertThatThrownBy(() -> messageHandler.getActiveService())
+ .isInstanceOf(AutomationCompositionRuntimeException.class);
+
+ var elementConfig = new ElementConfig();
+ elementConfig.setElementType(ElementType.STARTER);
+
+ assertThatThrownBy(() -> messageHandler.update(elementConfig))
+ .isInstanceOf(AutomationCompositionRuntimeException.class);
+
+ messageHandler.active(elementConfig);
+
+ var newElementConfig = new ElementConfig();
+ newElementConfig.setElementType(ElementType.BRIDGE);
+
+ assertThatThrownBy(() -> messageHandler.update(newElementConfig))
+ .isInstanceOf(AutomationCompositionRuntimeException.class);
+ }
+
@Test
void testStarter() {
var starter = createMockElementService(ElementType.STARTER);
verify(bridge).update(elementConfig);
var message = new ElementStatus();
- messageHandler.handleMessage(message);
+ message.setElementId(new ToscaConceptIdentifier(NAME, VERSION));
+ var listener = new MessageListener(messageHandler);
+ listener.onTopicEvent(null, TOPIC, null, message);
verify(bridge).handleMessage(message);
messageHandler.deactivateElement();
}
assertThat(messageHandler.getActiveService()).isEqualTo(sink);
var message = new ElementStatus();
- messageHandler.handleMessage(message);
+ message.setElementId(new ToscaConceptIdentifier(NAME, VERSION));
+ var listener = new MessageListener(messageHandler);
+ listener.onTopicEvent(null, TOPIC, null, message);
verify(sink).handleMessage(message);
messageHandler.deactivateElement();
}
package org.onap.policy.clamp.acm.element.service;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.junit.jupiter.api.Test;
import org.onap.policy.clamp.acm.element.handler.MessagePublisher;
import org.onap.policy.clamp.acm.element.main.parameters.AcElement;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionRuntimeException;
import org.onap.policy.clamp.models.acm.messages.dmaap.element.ElementMessage;
import org.onap.policy.clamp.models.acm.messages.dmaap.element.ElementStatus;
import org.onap.policy.clamp.models.acm.messages.rest.element.ElementConfig;
bridgeService.handleMessage(new ElementStatus());
verify(messagePublisher).publishMsg(any(ElementMessage.class));
}
+
+ @Test
+ void testWrongConf() {
+ var acElement = new AcElement();
+ acElement.setElementId(new ToscaConceptIdentifier("onap.policy.clamp.ac.element1", "1.0.0"));
+
+ var messagePublisher = new MessagePublisher();
+ var bridgeService = new BridgeService(messagePublisher, acElement);
+ var elementStatus = new ElementStatus();
+ assertThatThrownBy(() -> bridgeService.handleMessage(elementStatus))
+ .isInstanceOf(AutomationCompositionRuntimeException.class);
+ }
}
package org.onap.policy.clamp.acm.element.service;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.timeout;
import org.onap.policy.clamp.models.acm.messages.dmaap.element.ElementMessage;
import org.onap.policy.clamp.models.acm.messages.rest.element.ElementConfig;
import org.onap.policy.clamp.models.acm.messages.rest.element.ElementType;
+import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
class StarterServiceTest {
var elementConfig = new ElementConfig();
elementConfig.setTimerMs(100);
elementConfig.setReceiverId(new ToscaConceptIdentifier("onap.policy.clamp.ac.element2", "1.0.0"));
+
+ assertThatThrownBy(() -> starterService.update(elementConfig)).isInstanceOf(PfModelRuntimeException.class);
+
starterService.active(elementConfig);
- verify(messagePublisher, timeout(200).atLeastOnce()).publishMsg(any(ElementMessage.class));
+ verify(messagePublisher, timeout(500).atLeastOnce()).publishMsg(any(ElementMessage.class));
+
+ assertThatThrownBy(() -> starterService.active(elementConfig)).isInstanceOf(PfModelRuntimeException.class);
+
starterService.deactivate();
}
}
-
}