package com.jivesoftware.os.amzabot.deployable;
import com.beust.jcommander.internal.Sets;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.util.AbstractMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.testng.Assert;
import org.testng.annotations.Test;
public class AmzaBotEndpointsTest {
@Test
public void verifyGetEndpointJoinUsage() throws Exception {
List<String> noValues = Lists.newArrayList();
Assert.assertEquals(noValues.size(), 0);
String noValue = Joiner.on(',').join(noValues);
Assert.assertEquals(noValue, "");
List<String> oneValues = Lists.newArrayList();
oneValues.add("one");
String oneValue = Joiner.on(',').join(oneValues);
Assert.assertEquals(oneValue, "one");
List<String> twoValues = Lists.newArrayList();
twoValues.add("one");
twoValues.add("two");
String twoValue = Joiner.on(',').join(twoValues);
Assert.assertEquals(twoValue, "one,two");
}
@Test
public void verifyBatchSetPost() throws Exception {
Set<Entry<String, String>> set = Sets.newHashSet();
set.add(new AbstractMap.SimpleEntry<>("foo", "bar"));
set.add(new AbstractMap.SimpleEntry<>("ham", "eggs"));
String setJson = new ObjectMapper().writeValueAsString(set);
Assert.assertEquals(setJson, "[{\"ham\":\"eggs\"},{\"foo\":\"bar\"}]");
// i.e.
//
// curl -X POST \
// -H "Content-Type:application/json" \
// -d '[{"ham":"eggs"},{"foo":"bar"}]' \
// 10.126.5.87:10000/api/amzabot/v1/keys
}
@Test
public void verifyMultiSetPost() throws Exception {
Map<String, String> values = Maps.newHashMap();
values.put("foo", "bar");
values.put("ham", "eggs");
String mapJson = new ObjectMapper().writeValueAsString(values);
Assert.assertEquals(mapJson, "{\"ham\":\"eggs\",\"foo\":\"bar\"}");
// i.e.
//
// curl -X POST \
// -H "Content-Type:application/json" \
// -d '{"ham":"eggs","foo":"bar"}' \
// 10.126.5.87:1175/amza/multiSet/bad
}
}