package org.openstack.atlas.atom.util; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import org.openstack.atlas.atomhopper.exception.AtomHopperMappingException; import org.openstack.atlas.atomhopper.factory.UsageEntryFactoryImpl; import org.openstack.atlas.service.domain.entities.LoadBalancer; import org.openstack.atlas.service.domain.entities.Usage; import org.w3._2005.atom.ObjectFactory; import javax.xml.bind.JAXBException; import java.util.Calendar; import java.util.Map; import java.util.UUID; @RunWith(Enclosed.class) public class UsageMarshallerTest { public static class WhenMarshallingGeneratedXML { private UUID uuid; private Calendar cal; private Usage baseUsage; private ObjectFactory entryFactory; @Before public void standUp() { cal = Calendar.getInstance(); baseUsage = new Usage(); baseUsage.setCorrected(false); baseUsage.setAccountId(54321); baseUsage.setAverageConcurrentConnections(0.0); baseUsage.setAverageConcurrentConnectionsSsl(0.0); baseUsage.setEndTime(cal); cal.add(Calendar.HOUR_OF_DAY, -1); cal.getTime(); baseUsage.setStartTime(cal); baseUsage.setEntryVersion(1); baseUsage.setEventType(org.openstack.atlas.service.domain.events.entities.EventType.CREATE_LOADBALANCER.name()); baseUsage.setIncomingTransfer((long) 0); baseUsage.setNeedsPushed(true); baseUsage.setUuid(null); baseUsage.setTags(0); baseUsage.setNumAttempts(0); baseUsage.setNumVips(1); baseUsage.setOutgoingTransfer((long) 0); baseUsage.setOutgoingTransferSsl((long) 0); LoadBalancer lb = new LoadBalancer(); lb.setId(1223); lb.setName("base"); baseUsage.setLoadbalancer(lb); entryFactory = new ObjectFactory(); } @Test public void shouldSuccessfullyMarshallEntry() throws AtomHopperMappingException, JAXBException { UsageEntryFactoryImpl usageEntryFactory = new UsageEntryFactoryImpl(); Map<Object, Object> mappedobj = usageEntryFactory.createEntry(baseUsage); String entry = (String) mappedobj.get("entrystring"); Assert.assertTrue(entry.contains("54321")); } @Test public void shouldSuccessfullyMarshallDeleteEntry() throws AtomHopperMappingException, JAXBException { UsageEntryFactoryImpl usageEntryFactory = new UsageEntryFactoryImpl(); baseUsage.setEventType(org.openstack.atlas.service.domain.events.entities.EventType.DELETE_LOADBALANCER.name()); Map<Object, Object> mappedobj = usageEntryFactory.createEntry(baseUsage); String entry = (String) mappedobj.get("entrystring"); Assert.assertTrue(entry.contains("54321")); } } }