package org.distributeme.consulintegration; import java.util.HashMap; import java.util.Map; import org.distributeme.core.ServiceDescriptor; import org.junit.Test; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.*; /** * Created by rboehling on 3/2/17. */ public class ConsulServiceDescriptionTest { private static final String SERVICE_ID = "serviceId"; private static final String INSTANCE_ID = "instanceId"; private static final String HOSTNAME = "hostname"; private static final int PORT = 9000; private static final long TIMESTAMP = 1L; private static final ServiceDescriptor.Protocol RMI = ServiceDescriptor.Protocol.RMI; private ConsulServiceDescription consulServiceDescription; private ServiceDescriptor servicesDescriptor; private Map<String, String> tagableSystemProperties = new HashMap<>(); @Test public void createConsulServiceDescription_withCorrectValues() { givenServiceDescriptor(); whenConsulServiceDescriptionIsCreated(); thenConsulServiceDescriptionContainsAllValuesFromServiceDescription(); } private void thenConsulServiceDescriptionContainsAllValuesFromServiceDescription() { assertThat(consulServiceDescription.getId(), is(SERVICE_ID)); assertThat(consulServiceDescription.getName(), is(SERVICE_ID)); assertThat(consulServiceDescription.getAddress(), is(HOSTNAME)); assertThat(consulServiceDescription.getPort(), is(PORT)); assertThat(consulServiceDescription.getTags().size(), is(3)); assertThat(consulServiceDescription.getTags(), hasItem("instanceId=" + INSTANCE_ID)); assertThat(consulServiceDescription.getTags(), hasItem("protocol=" + RMI.toString().toLowerCase())); assertThat(consulServiceDescription.getTags(), hasItem("timestamp=" + TIMESTAMP)); } private void whenConsulServiceDescriptionIsCreated() { consulServiceDescription = new ConsulServiceDescription(servicesDescriptor, tagableSystemProperties); } private void givenServiceDescriptor() { servicesDescriptor = new ServiceDescriptor( RMI, SERVICE_ID, INSTANCE_ID, HOSTNAME, PORT, TIMESTAMP); } }