package com.workshare.msnos.core.payloads;
import com.workshare.msnos.core.Message.Payload;
import com.workshare.msnos.usvc.api.RestApi;
import org.junit.Test;
import java.util.HashSet;
import java.util.Set;
import static org.junit.Assert.assertEquals;
public class QnePayloadTest {
@Test
public void shouldSplitApisCollectionOnSplit() {
final RestApi alfa = newApi("alfa");
final RestApi beta = newApi("beta");
QnePayload payload = new QnePayload("foo", alfa, beta);
Payload[] loads = payload.split();
assertEquals(2, loads.length);
Set<RestApi> newApis = new HashSet<RestApi>();
newApis.add(getApi(loads[0]));
newApis.add(getApi(loads[1]));
assertEquals(payload.getApis(), newApis);
}
@Test
public void shouldPreserveServiceNameOnSplit() {
QnePayload payload = new QnePayload("foo", newApi("alfa"), newApi("beta"));
Payload[] loads = payload.split();
for (Payload load : loads) {
assertEquals("foo", ((QnePayload) load).getName());
}
}
private RestApi newApi(final String path) {
return new RestApi(path, (int) Math.random() * 1000);
}
private RestApi getApi(Payload payload) {
QnePayload load = (QnePayload) payload;
Set<RestApi> apis = load.getApis();
if (apis.size() == 1)
return apis.iterator().next();
else
throw new AssertionError("One API only was expected!");
}
}