package com.insightfullogic.honest_profiler.ports.sources;
import com.insightfullogic.honest_profiler.core.MachineListener;
import com.insightfullogic.honest_profiler.core.sources.VirtualMachine;
import com.insightfullogic.honest_profiler.testing_utilities.AgentRunner;
import com.insightfullogic.lambdabehave.JunitSuiteRunner;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import static com.insightfullogic.lambdabehave.Suite.describe;
import static org.mockito.Mockito.mock;
@RunWith(JunitSuiteRunner.class)
public class LocalMachineSourceTest
{
{
describe("Local Machine Sources", it -> {
Logger logger = mock(Logger.class);
it.should("detect local machines", expect -> {
AgentRunner.run("InfiniteExample", AgentRunner.DEFAULT_AGENT_INTERVAL, runner -> {
final int expectedProcessId = runner.getProcessId();
new LocalMachineSource(logger, new MachineListener()
{
@Override
public void onNewMachine(final VirtualMachine machine)
{
int machineProcessId = Integer.parseInt(machine.getId());
expect.that(machine.isAgentLoaded()).is(machineProcessId == expectedProcessId);
}
@Override
public void onClosedMachine(final VirtualMachine machine)
{
expect.failure("Should never close VM " + machine);
}
}).discoverVirtualMachines();
});
});
it.should("detect no local machines if none are running", expect -> {
new LocalMachineSource(logger, new MachineListener()
{
@Override
public void onNewMachine(final VirtualMachine machine)
{
expect.that(machine.isAgentLoaded()).is(false);
}
@Override
public void onClosedMachine(final VirtualMachine machine)
{
expect.failure("Should never close VM " + machine);
}
}).discoverVirtualMachines();
});
});
}}