/src/test/java/nl/bitbrains/nebu/deployer/policies/TestLocalityPolicyFactory.java

https://github.com/deltaforge/nebu-core · Java · 79 lines · 60 code · 15 blank · 4 comment · 0 complexity · 5201ce5ad89c91f8ebd5ae7def3a8f02 MD5 · raw file

  1. package nl.bitbrains.nebu.deployer.policies;
  2. import java.text.ParseException;
  3. import nl.bitbrains.nebu.deployer.policies.LocalityPolicy;
  4. import nl.bitbrains.nebu.deployer.policies.LocalityPolicyFactory;
  5. import org.jdom2.Element;
  6. import org.junit.Assert;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9. import org.mockito.Mockito;
  10. /**
  11. * @author Jesse Donkervliet, Tim Hegeman, and Stefan Hugtenburg
  12. *
  13. */
  14. public class TestLocalityPolicyFactory {
  15. private LocalityPolicyFactory factory;
  16. @Before
  17. public void setUp() {
  18. this.factory = new LocalityPolicyFactory();
  19. }
  20. @Test
  21. public void testGetInstance() {
  22. Assert.assertNotNull(this.factory.newInstance());
  23. }
  24. @Test
  25. public void testFromXMLNoSettingContent() throws ParseException {
  26. final Element xml = Mockito.mock(Element.class);
  27. final LocalityPolicy policy = this.factory.fromXML(xml);
  28. Assert.assertNotNull(policy);
  29. Assert.assertEquals(LocalityPolicy.DEFAULT_MAX_VMS_PER_HOST, policy.getMaxVMsPerHost());
  30. }
  31. @Test
  32. public void testFromXMLNoSettingsXMLInteractions() throws ParseException {
  33. final Element xml = Mockito.mock(Element.class);
  34. this.factory.fromXML(xml);
  35. Mockito.verify(xml, Mockito.times(1)).getChild(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST);
  36. Mockito.verifyNoMoreInteractions(xml);
  37. }
  38. @Test
  39. public void testFromXMLWithSettingsContent() throws ParseException {
  40. final Element xml = Mockito.mock(Element.class);
  41. final Element elem = Mockito.mock(Element.class);
  42. final String string = "12";
  43. Mockito.when(xml.getChild(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST)).thenReturn(elem);
  44. Mockito.when(xml.getChildTextTrim(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST))
  45. .thenReturn(string);
  46. final LocalityPolicy policy = this.factory.fromXML(xml);
  47. Assert.assertNotNull(policy);
  48. Assert.assertEquals(Integer.parseInt(string), policy.getMaxVMsPerHost());
  49. }
  50. @Test
  51. public void testFromXMLWithSettingsXMLInteractions() throws ParseException {
  52. final Element xml = Mockito.mock(Element.class);
  53. final Element elem = Mockito.mock(Element.class);
  54. final String string = "12";
  55. Mockito.when(xml.getChild(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST)).thenReturn(elem);
  56. Mockito.when(xml.getChildTextTrim(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST))
  57. .thenReturn(string);
  58. final LocalityPolicy policy = this.factory.fromXML(xml);
  59. Mockito.verify(xml, Mockito.times(1)).getChild(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST);
  60. Mockito.verify(xml, Mockito.times(1))
  61. .getChildTextTrim(LocalityPolicyFactory.TAG_MAX_VMS_PER_HOST);
  62. Mockito.verifyNoMoreInteractions(xml);
  63. }
  64. }