package cl.utfsm.acs.acg.dao; import alma.acs.alarmsystem.generated.Contact; import alma.acs.alarmsystem.generated.FaultCode; import alma.acs.alarmsystem.generated.FaultFamily; import alma.acs.alarmsystem.generated.FaultMember; import alma.acs.alarmsystem.generated.FaultMemberDefault; import alma.acs.alarmsystem.generated.Location; import alma.alarmsystem.alarmmessage.generated.ReductionDefinitions; import cern.laser.business.data.Alarm; import alma.alarmsystem.alarmmessage.generated.AlarmDefinition; import alma.alarmsystem.alarmmessage.generated.Child; import alma.alarmsystem.alarmmessage.generated.Parent; import alma.alarmsystem.alarmmessage.generated.ReductionLinkType; import cl.utfsm.acs.acg.core.AcsInformation; import cl.utfsm.acs.acg.core.AlarmManager; import cl.utfsm.acs.acg.core.DAOManager; import junit.framework.TestCase; public class ACSAlarmDAOImplTest extends TestCase{ AcsInformation _acsInfo; DAOManager _daoManager; AlarmManager _am; ACSAlarmDAOImpl _alarmDAO; public void setUp() throws Exception { _acsInfo = new AcsInformation("Test client"); _daoManager = new DAOManager(_acsInfo.getContainerServices()); _daoManager.connect(); _alarmDAO = (ACSAlarmDAOImpl)_daoManager.getAlarmDAO(); } public void testAddFaultFamily(){ boolean exception; Alarm al1; cern.laser.business.data.Location l; //Delete Entry if it exists due to an error in previous test { FaultFamily ff = new FaultFamily(); ff.setName("ffTest1"); try{ _alarmDAO.removeFaultFamily(ff); }catch(Exception e){ //This happens when FaultFamily "ffTest1" doesn't exist } } //Check Null Argument exception = false; try{ _alarmDAO.addFaultFamily(null); }catch(Exception e){ exception = true; } assertTrue(exception); //Check new FaultFamily FaultFamily ff = new FaultFamily(); ff.setName("ffTest1"); ff.setAlarmSource("ALARM_SYSTEM_SOURCES"); ff.setHelpUrl("http://www.test.com"); Contact ct = new Contact(); ct.setEmail("em1"); ct.setGsm("gsm1"); ct.setName("cont1"); ff.setContact(ct); FaultCode fc = new FaultCode(); fc.setValue(1); fc.setPriority(0); fc.setAction("action1"); fc.setCause("cause1"); fc.setConsequence("conseq1"); fc.setProblemDescription("problem1"); ff.addFaultCode(fc); FaultMemberDefault fmd = new FaultMemberDefault(); Location lc = new Location(); lc.setBuilding("b1"); lc.setFloor("f1"); lc.setMnemonic("m1"); lc.setPosition("p1"); lc.setRoom("r1"); fmd.setLocation(lc); ff.setFaultMemberDefault(fmd); FaultMember fm = new FaultMember(); fm.setName("fmTest1"); lc = new Location(); lc.setBuilding("b2"); lc.setFloor("f2"); lc.setMnemonic("m2"); lc.setPosition("p2"); lc.setRoom("r2"); fm.setLocation(lc); ff.addFaultMember(fm); exception = false; try{ _alarmDAO.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1"); assertNotNull(al1); assertEquals("ALARM_SYSTEM_SOURCES",al1.getSource().getName()); assertEquals("http://www.test.com",al1.getHelpURL().toString()); assertEquals("em1",al1.getPiquetEmail()); assertEquals("gsm1",al1.getPiquetGSM()); assertEquals("cont1",al1.getResponsiblePerson().getFamilyName()); assertEquals(0,al1.getPriority().intValue()); assertEquals("action1",al1.getAction()); assertEquals("cause1",al1.getCause()); assertEquals("conseq1",al1.getConsequence()); assertEquals("problem1",al1.getProblemDescription()); l = al1.getLocation(); assertNotNull(l); //assertEquals("b2",l.getBuilding()); //Null assertEquals("f2",l.getFloor()); assertEquals("m2",l.getMnemonic()); assertEquals("p2",l.getPosition()); assertEquals("r2",l.getRoom()); //Check if it already exists exception = false; try{ _alarmDAO.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertTrue(exception); } public void testUpdateFaultFamily(){ boolean exception; Alarm al1; cern.laser.business.data.Location l; //Delete Entry if it exists due to an error in previous test { FaultFamily ff = new FaultFamily(); ff.setName("ffTest1"); try{ _alarmDAO.removeFaultFamily(ff); }catch(Exception e){ //This happens when FaultFamily "ffTest1" doesn't exist } } //Check Null Argument exception = false; try{ _alarmDAO.updateFaultFamily(null); }catch(Exception e){ exception = true; } assertTrue(exception); //Update a FaultFamily that doesn't exist FaultFamily ff = new FaultFamily(); ff.setName("ffTest1"); exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertTrue(exception); //Check updating FaultFamily ff.setAlarmSource("ALARM_SYSTEM_SOURCES"); ff.setHelpUrl("http://www.test.com"); Contact ct = new Contact(); ct.setEmail("em1"); ct.setGsm("gsm1"); ct.setName("cont1"); ff.setContact(ct); FaultCode fc = new FaultCode(); fc.setValue(1); fc.setPriority(0); fc.setAction("action1"); fc.setCause("cause1"); fc.setConsequence("conseq1"); fc.setProblemDescription("problem1"); ff.addFaultCode(fc); FaultMember fm = new FaultMember(); fm.setName("fmTest1"); Location lc = new Location(); lc.setBuilding("b2"); lc.setFloor("f2"); lc.setMnemonic("m2"); lc.setPosition("p2"); lc.setRoom("r2"); fm.setLocation(lc); ff.addFaultMember(fm); exception = false; try{ _alarmDAO.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); //Update FF information //ff.setAlarmSource("ALARM_SYSTEM_SOURCES2");//Can't be changed at the moment. ff.setHelpUrl("http://www.test2.com"); ct.setEmail("em2"); ct.setGsm("gsm2"); ct.setName("cont2"); try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1"); assertNotNull(al1); assertEquals("ALARM_SYSTEM_SOURCES",al1.getSource().getName()); //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName()); assertEquals("http://www.test2.com",al1.getHelpURL().toString()); assertEquals("em2",al1.getPiquetEmail()); assertEquals("gsm2",al1.getPiquetGSM()); assertEquals("cont2",al1.getResponsiblePerson().getFamilyName()); assertEquals(0,al1.getPriority().intValue()); assertEquals("action1",al1.getAction()); assertEquals("cause1",al1.getCause()); assertEquals("conseq1",al1.getConsequence()); assertEquals("problem1",al1.getProblemDescription()); l = al1.getLocation(); //assertEquals("b2",l.getBuilding()); assertEquals("f2",l.getFloor()); assertEquals("m2",l.getMnemonic()); assertEquals("p2",l.getPosition()); assertEquals("r2",l.getRoom()); //Update FM Information fm.setName("fmTest2"); lc.setBuilding("b3"); lc.setFloor("f3"); lc.setMnemonic("m3"); lc.setPosition("p3"); lc.setRoom("r3"); try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:1"); assertNotNull(al1); //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName()); assertEquals("ALARM_SYSTEM_SOURCES",al1.getSource().getName()); assertEquals("http://www.test2.com",al1.getHelpURL().toString()); assertEquals("em2",al1.getPiquetEmail()); assertEquals("gsm2",al1.getPiquetGSM()); assertEquals("cont2",al1.getResponsiblePerson().getFamilyName()); assertEquals(0,al1.getPriority().intValue()); assertEquals("action1",al1.getAction()); assertEquals("cause1",al1.getCause()); assertEquals("conseq1",al1.getConsequence()); assertEquals("problem1",al1.getProblemDescription()); l = al1.getLocation(); //assertEquals("b3",l.getBuilding()); assertEquals("f3",l.getFloor()); assertEquals("m3",l.getMnemonic()); assertEquals("p3",l.getPosition()); assertEquals("r3",l.getRoom()); //Update FC Information fc.setValue(2); fc.setPriority(1); fc.setAction("action2"); fc.setCause("cause2"); fc.setConsequence("conseq2"); fc.setProblemDescription("problem2"); try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:2"); assertNotNull(al1); //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName()); assertEquals("ALARM_SYSTEM_SOURCES",al1.getSource().getName()); assertEquals("http://www.test2.com",al1.getHelpURL().toString()); assertEquals("em2",al1.getPiquetEmail()); assertEquals("gsm2",al1.getPiquetGSM()); assertEquals("cont2",al1.getResponsiblePerson().getFamilyName()); assertEquals(1,al1.getPriority().intValue()); assertEquals("action2",al1.getAction()); assertEquals("cause2",al1.getCause()); assertEquals("conseq2",al1.getConsequence()); assertEquals("problem2",al1.getProblemDescription()); l = al1.getLocation(); //assertEquals("b3",l.getBuilding()); assertEquals("f3",l.getFloor()); assertEquals("m3",l.getMnemonic()); assertEquals("p3",l.getPosition()); assertEquals("r3",l.getRoom()); //Update Add FM FaultMember fm2 = new FaultMember(); fm2.setName("fmTest3"); Location lc2 = new Location(); lc2.setBuilding("b4"); lc2.setFloor("f4"); lc2.setMnemonic("m4"); lc2.setPosition("p4"); lc2.setRoom("r4"); fm2.setLocation(lc2); ff.addFaultMember(fm2); exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:2"); assertNotNull(al1); //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName()); assertEquals("ALARM_SYSTEM_SOURCES",al1.getSource().getName()); assertEquals("http://www.test2.com",al1.getHelpURL().toString()); assertEquals("em2",al1.getPiquetEmail()); assertEquals("gsm2",al1.getPiquetGSM()); assertEquals("cont2",al1.getResponsiblePerson().getFamilyName()); assertEquals(1,al1.getPriority().intValue()); assertEquals("action2",al1.getAction()); assertEquals("cause2",al1.getCause()); assertEquals("conseq2",al1.getConsequence()); assertEquals("problem2",al1.getProblemDescription()); l = al1.getLocation(); //assertEquals("b4",l.getBuilding()); assertEquals("f4",l.getFloor()); assertEquals("m4",l.getMnemonic()); assertEquals("p4",l.getPosition()); assertEquals("r4",l.getRoom()); //Update Add FC FaultCode fc2 = new FaultCode(); fc2.setValue(3); fc2.setPriority(2); fc2.setAction("action3"); fc2.setCause("cause3"); fc2.setConsequence("conseq3"); fc2.setProblemDescription("problem3"); ff.addFaultCode(fc2); exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3"); assertNotNull(al1); //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName()); assertEquals("ALARM_SYSTEM_SOURCES",al1.getSource().getName()); assertEquals("http://www.test2.com",al1.getHelpURL().toString()); assertEquals("em2",al1.getPiquetEmail()); assertEquals("gsm2",al1.getPiquetGSM()); assertEquals("cont2",al1.getResponsiblePerson().getFamilyName()); assertEquals(2,al1.getPriority().intValue()); assertEquals("action3",al1.getAction()); assertEquals("cause3",al1.getCause()); assertEquals("conseq3",al1.getConsequence()); assertEquals("problem3",al1.getProblemDescription()); l = al1.getLocation(); //assertEquals("b4",l.getBuilding()); assertEquals("f4",l.getFloor()); assertEquals("m4",l.getMnemonic()); assertEquals("p4",l.getPosition()); assertEquals("r4",l.getRoom()); //Update Remove FM ff.removeFaultMember(fm); exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:2"); assertNull(al1); al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:3"); assertNull(al1); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:2"); assertNotNull(al1); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3"); assertNotNull(al1); //Update Remove FC ff.removeFaultCode(fc); exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:2"); assertNull(al1); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3"); assertNotNull(al1); //Update Add Default FM FaultMemberDefault fmd = new FaultMemberDefault(); lc = new Location(); lc.setBuilding("b1"); lc.setFloor("f1"); lc.setMnemonic("m1"); lc.setPosition("p1"); lc.setRoom("r1"); fmd.setLocation(lc); ff.setFaultMemberDefault(fmd); exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:any:3"); assertNotNull(al1); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3"); assertNotNull(al1); //Update Remove Default FM //ff.removeFaultMemberDefault(); Missing method? /* exception = false; try{ _alarmDAO.updateFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:any:3"); assertNull(al1); al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3"); assertNotNull(al1); */ } public void testRemoveFaultFamily(){ Alarm al1; boolean exception; //Delete Entry if it exists due to an error in previous test { FaultFamily ff = new FaultFamily(); ff.setName("ffTest1"); try{ _alarmDAO.removeFaultFamily(ff); }catch(Exception e){ //This happens when FaultFamily "ffTest1" doesn't exist } } //Check null argument exception = false; try{ _alarmDAO.removeFaultFamily(null); }catch(Exception e){ exception = true; } assertTrue(exception); //Check Remove FF that doesn't exist FaultFamily ff = new FaultFamily(); ff.setName("ffTest1"); exception = false; try{ _alarmDAO.removeFaultFamily(ff); }catch(Exception e){ exception = true; } assertTrue(exception); //Check Remove FF ff.setAlarmSource("ALARM_SYSTEM_SOURCES"); ff.setHelpUrl("http://www.test.com"); Contact ct = new Contact(); ct.setEmail("em1"); ct.setGsm("gsm1"); ct.setName("cont1"); ff.setContact(ct); FaultCode fc = new FaultCode(); fc.setValue(1); fc.setPriority(0); fc.setAction("action1"); fc.setCause("cause1"); fc.setConsequence("conseq1"); fc.setProblemDescription("problem1"); ff.addFaultCode(fc); FaultMemberDefault fmd = new FaultMemberDefault(); Location lc = new Location(); lc.setBuilding("b1"); lc.setFloor("f1"); lc.setMnemonic("m1"); lc.setPosition("p1"); lc.setRoom("r1"); fmd.setLocation(lc); ff.setFaultMemberDefault(fmd); FaultMember fm = new FaultMember(); fm.setName("fmTest1"); lc = new Location(); lc.setBuilding("b2"); lc.setFloor("f2"); lc.setMnemonic("m2"); lc.setPosition("p2"); lc.setRoom("r2"); fm.setLocation(lc); ff.addFaultMember(fm); exception = false; try{ _alarmDAO.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1"); assertNotNull(al1); try{ _alarmDAO.removeFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1"); assertNull(al1); } public void testGetReductionDefinitions() { Parent p = new Parent(); Child c = new Child(); AlarmDefinition ad_p = new AlarmDefinition(); AlarmDefinition ad_c = new AlarmDefinition(); ad_p.setFaultFamily("A1"); ad_p.setFaultMember("B1"); ad_p.setFaultCode(1); ad_c.setFaultFamily("A2"); ad_c.setFaultMember("B2"); ad_c.setFaultCode(2); p.setAlarmDefinition(ad_p); c.setAlarmDefinition(ad_c); ReductionLinkType rl = new ReductionLinkType(); rl.setParent(p); rl.setChild(c); rl.setType("NODE"); ReductionDefinitions rds = _alarmDAO.getReductionRules(); _alarmDAO.addReductionRule(rds, rl); //_alarmDAO.flushReductionRules(rds); } public void tearDown() throws Exception { _acsInfo.disconnect(); } }