package org.ovirt.engine.api.restapi.util; import java.util.List; import org.junit.Assert; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.ServerCpu; import static org.ovirt.engine.api.restapi.util.ServerCpuParser.parseCpus; public class ServerCpuParserTest extends Assert { @Test public void testParseEmpty() { List<ServerCpu> cpus = parseCpus(""); assertNotNull(cpus); assertEquals(0, cpus.size()); } @Test public void testParseSingle() { List<ServerCpu> cpus = parseCpus("0:foo:one,two,three:blue"); assertNotNull(cpus); assertEquals(1, cpus.size()); verifyCpu(cpus.get(0), 0, "foo", "blue", "one", "two", "three"); } @Test public void testParseMultiple() { List<ServerCpu> cpus = parseCpus("0:foo:one,two,three:blue;99:bar foo:four,five,six:pink"); assertNotNull(cpus); assertEquals(2, cpus.size()); verifyCpu(cpus.get(0), 0, "foo", "blue", "one", "two", "three"); verifyCpu(cpus.get(1), 99, "bar foo", "pink", "four", "five", "six"); } @Test public void testParseStraySemiColons() { List<ServerCpu> cpus = parseCpus(";;0:foo:one,two,three:blue;;"); assertNotNull(cpus); assertEquals(1, cpus.size()); verifyCpu(cpus.get(0), 0, "foo", "blue", "one", "two", "three"); } @Test public void testParseStrayCommas() { List<ServerCpu> cpus = parseCpus("0:foo:,,one,two,,,three,,:blue"); assertNotNull(cpus); assertEquals(1, cpus.size()); verifyCpu(cpus.get(0), 0, "foo", "blue", "one", "two", "three"); } @Test public void testParseNoFlags() { List<ServerCpu> cpus = parseCpus("0:foo::blue"); assertNotNull(cpus); assertEquals(1, cpus.size()); verifyCpu(cpus.get(0), 0, "foo", "blue"); } @Test public void testParseNoNameFlagsOrVerb() { List<ServerCpu> cpus = parseCpus("0:::"); assertNotNull(cpus); assertEquals(1, cpus.size()); verifyCpu(cpus.get(0), 0, "", ""); } @Test public void testParseInvalid() { try { parseCpus("0::"); fail("expected exception"); } catch (IllegalArgumentException ex) { } } @Test public void testParseInvalidLevel() { try { parseCpus("!:::"); fail("expected exception"); } catch (NumberFormatException ex) { } } private void verifyCpu(ServerCpu cpu, int level, String name, String verb, String... flags) { assertEquals(level, cpu.getLevel()); assertEquals(name, cpu.getCpuName()); assertEquals(verb, cpu.getVdsVerbData()); assertNotNull(cpu.getFlags()); assertEquals(flags.length, cpu.getFlags().size()); for (String f : flags) { assertTrue(cpu.getFlags().contains(f)); } } }