Package com.sequenceiq.cloudbreak.service.stack.handler

Source Code of com.sequenceiq.cloudbreak.service.stack.handler.StackCreationSuccessHandlerTest

package com.sequenceiq.cloudbreak.service.stack.handler;

import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import com.sequenceiq.cloudbreak.conf.ReactorConfig;
import com.sequenceiq.cloudbreak.domain.Stack;
import com.sequenceiq.cloudbreak.domain.Status;
import com.sequenceiq.cloudbreak.domain.WebsocketEndPoint;
import com.sequenceiq.cloudbreak.repository.RetryingStackUpdater;
import com.sequenceiq.cloudbreak.service.stack.event.StackCreationSuccess;
import com.sequenceiq.cloudbreak.websocket.WebsocketService;

import reactor.core.Reactor;
import reactor.event.Event;

public class StackCreationSuccessHandlerTest {

    private static final String STACK_NAME = "stackName";
    private static final String DUMMY_EMAIL = "gipszjakab@myemail.com";
    private static final String DETAILED_MESSAGE = "message";

    @InjectMocks
    private StackCreationSuccessHandler underTest;

    @Mock
    private RetryingStackUpdater stackUpdater;

    @Mock
    private WebsocketService websocketService;

    @Mock
    private Reactor reactor;

    private Event<StackCreationSuccess> event;

    private Stack stack;

    @Before
    public void setUp() {
        underTest = new StackCreationSuccessHandler();
        MockitoAnnotations.initMocks(this);
        event = createEvent();
        stack = createStack();
    }

    @Test
    public void testAcceptStackCreationSuccessEvent() {
        // GIVEN
        given(stackUpdater.updateAmbariIp(anyLong(), anyString())).willReturn(stack);
        given(stackUpdater.updateStackStatus(anyLong(), any(Status.class))).willReturn(stack);
        given(stackUpdater.updateStackStatusReason(anyLong(), anyString())).willReturn(stack);
        doNothing().when(websocketService).sendToTopicUser(anyString(), any(WebsocketEndPoint.class), any());
        // WHEN
        underTest.accept(event);
        // THEN
        verify(websocketService, times(1)).sendToTopicUser(anyString(), any(WebsocketEndPoint.class), any());
        verify(reactor, times(1)).notify(any(ReactorConfig.class), any(Event.class));
    }

    private Event<StackCreationSuccess> createEvent() {
        StackCreationSuccess data = new StackCreationSuccess(1L, DETAILED_MESSAGE);
        return new Event<StackCreationSuccess>(data);
    }

    private Stack createStack() {
        Stack stack = new Stack();
        stack.setName(STACK_NAME);
        stack.setOwner(DUMMY_EMAIL);
        return stack;
    }
}
TOP

Related Classes of com.sequenceiq.cloudbreak.service.stack.handler.StackCreationSuccessHandlerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.