Skip to content
Snippets Groups Projects
LookingGlassServiceImplTest.java 1.69 KiB
package org.geant.lgservice.services;

import org.assertj.core.api.Assertions;
import org.geant.lgservice.ecmr.CommandExecutor;
import org.geant.lgservice.pojos.Command;
import org.geant.lgservice.pojos.CommandOutput;
import org.geant.lgservice.pojos.Coordinates;
import org.geant.lgservice.pojos.Router;
import org.hibernate.result.Output;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;

import java.util.Collections;
import java.util.Map;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.*;

public class LookingGlassServiceImplTest {

    private CommandExecutor commandExecutor = mock(CommandExecutor.class);

    private LookingGlassServiceImpl subject = new LookingGlassServiceImpl(null, commandExecutor);

    @Before
    public void setup() {
        reset(commandExecutor);
    }

    @Test
    public void testQuery() {
        Router router = Router.builder()
                .name("router.geant.org")
                .build();

        Command command = new Command();
        String arguments = "some args";

        CommandOutput output = new CommandOutput();
        output.setRouterName(router.getName());

        when(commandExecutor.execute(any(Router.class), any(Command.class), any(String.class), anyBoolean())).thenReturn(output);

        Map<String, CommandOutput> result = subject.submitQuery(Collections.singletonList(router), command, arguments, false);

        assertThat(result).hasSize(1);
        assertThat(result).containsKey(router.getName());
        assertThat(result.get(router.getName())).isEqualTo(output);
    }
}