/* * ALMA - Atacama Large Millimeter Array * (c) Universidad Tecnica Federico Santa Maria, 2009 * Copyright by ESO (in the framework of the ALMA collaboration), * All rights reserved * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ package cl.utfsm.acs.acg.core; import java.util.List; //import alma.acs.alarmsystem.generated.Category; import alma.acs.alarmsystem.generated.Contact; import alma.acs.alarmsystem.generated.Location; import alma.acs.alarmsystem.generated.FaultCode; import alma.acs.alarmsystem.generated.FaultFamily; import alma.acs.alarmsystem.generated.FaultMember; import junit.framework.TestCase; public class AlarmManagerTest extends TestCase { AcsInformation _acsInfo; DAOManager _daoManager; AlarmManager _am; public void setUp() throws Exception { _acsInfo = new AcsInformation("Test client"); _daoManager = new DAOManager(_acsInfo.getContainerServices()); _daoManager.connect(); //_am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); //_am.loadFromCDB(); } public void testGetInstance() { AlarmManager am1 = AlarmManager.getInstance(_daoManager.getAlarmDAO()); AlarmManager am2 = AlarmManager.getInstance(_daoManager.getAlarmDAO()); assertNotNull(am1); assertNotNull(am2); assertEquals(am1,am2); } public void testLoadFromCDB() { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); assertNotNull(_am.getAllAlarms()); } public void testGetAllAlarms() { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ffList = _am.getAllAlarms(); assertNotNull(ffList); for (FaultFamily faultFamily : ffList) { assertNotNull(faultFamily); } } public void testGetFaultFamily() { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ffList = _am.getAllAlarms(); assertNotNull(ffList); for (FaultFamily faultFamily : ffList) { FaultFamily ff = _am.getFaultFamily(faultFamily.getName()); assertNotNull(ff); assertEquals(ff.getName(), faultFamily.getName()); assertEquals(ff.getFaultCodeCount(), faultFamily.getFaultCodeCount()); assertEquals(ff.getFaultMemberCount(), faultFamily.getFaultMemberCount()); assertEquals(ff.getHelpUrl(), faultFamily.getHelpUrl()); assertEquals(ff.getContact().getName(), faultFamily.getContact().getName()); assertEquals(ff.getContact().getEmail(), faultFamily.getContact().getEmail()); assertEquals(ff.getContact().getGsm(), faultFamily.getContact().getGsm()); } } public void testGetFaultCode() { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ffList = _am.getAllAlarms(); assertNotNull(ffList); for (FaultFamily faultFamily : ffList) { FaultCode[] codes = faultFamily.getFaultCode(); assertNotNull(codes); for (int i = 0; i < codes.length; i++) { FaultCode code = _am.getFaultCode(faultFamily.getName(), codes[i].getValue()); assertNotNull(code); assertEquals(code.getAction(), codes[i].getAction()); assertEquals(code.getCause(), codes[i].getCause()); assertEquals(code.getConsequence(), codes[i].getConsequence()); assertEquals(code.getInstant(), codes[i].getInstant()); assertEquals(code.getPriority(), codes[i].getPriority()); assertEquals(code.getProblemDescription(), codes[i].getProblemDescription()); assertEquals(code.getValue(), codes[i].getValue()); } } } public void testGetFaultMember() { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ffList = _am.getAllAlarms(); assertNotNull(ffList); for (FaultFamily faultFamily : ffList) { FaultMember[] members = faultFamily.getFaultMember(); assertNotNull(members); for (int i = 0; i < members.length; i++) { FaultMember member = _am.getFaultMember(faultFamily.getName(), members[i].getName()); assertNotNull(member); assertEquals(member.getName(), members[i].getName()); if( member.getLocation() != null ) { assertEquals(member.getLocation().getBuilding(), members[i].getLocation().getBuilding()); assertEquals(member.getLocation().getFloor(), members[i].getLocation().getFloor()); assertEquals(member.getLocation().getRoom(), members[i].getLocation().getRoom()); assertEquals(member.getLocation().getMnemonic(), members[i].getLocation().getMnemonic()); assertEquals(member.getLocation().getPosition(), members[i].getLocation().getPosition()); } } } } public void testDeleteFaultFamily() throws Exception { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1 = ff1.size(); assertTrue(_am.deleteFaultFamily(ff1.get(0))); int size2 = ff1.size(); assertEquals(size1,size2+1); boolean exception = false; try { _am.deleteFaultFamily(null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); FaultFamily ff = new FaultFamily(); exception = false; try { _am.deleteFaultFamily(ff); } catch (NullPointerException e) { exception = true; } assertTrue(exception); ff.setName("foobar"); assertFalse(_am.deleteFaultFamily(ff)); } public void testDeleteFaultMember() throws Exception { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1 = ff1.get(0).getFaultMember().length; assertTrue(_am.deleteFaultMember(ff1.get(0),ff1.get(0).getFaultMember(0))); int size2 = ff1.get(0).getFaultMember().length; assertEquals(size1,size2+1); boolean exception = false; try { _am.deleteFaultMember(null,ff1.get(0).getFaultMember(0)); } catch(NullPointerException e) { exception = true; } assertTrue(exception); exception = false; try { _am.deleteFaultMember(ff1.get(0),null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); exception = false; try { _am.deleteFaultMember(null,null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); FaultFamily ff = new FaultFamily(); ff.addFaultMember(new FaultMember()); exception = false; try { _am.deleteFaultMember(ff, ff.getFaultMember(0)); } catch (NullPointerException e) { exception = true; } assertTrue(exception); ff.setName("foobar"); ff.getFaultMember(0).setName("foobar"); assertFalse(_am.deleteFaultMember(ff,ff.getFaultMember(0))); } public void testDeleteFaultCode() throws Exception { _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1 = ff1.get(0).getFaultCode().length; assertTrue(_am.deleteFaultCode(ff1.get(0),ff1.get(0).getFaultCode(0))); int size2 = ff1.get(0).getFaultCode().length; assertEquals(size1,size2+1); boolean exception = false; try { _am.deleteFaultCode(null,ff1.get(0).getFaultCode(0)); } catch(NullPointerException e) { exception = true; } assertTrue(exception); exception = false; try { _am.deleteFaultCode(ff1.get(0),null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); exception = false; try { _am.deleteFaultCode(null,null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); FaultFamily ff = new FaultFamily(); ff.addFaultCode(new FaultCode()); exception = false; try { _am.deleteFaultCode(ff, ff.getFaultCode(0)); } catch (NullPointerException e) { exception = true; } assertTrue(exception); ff.setName("foobar"); ff.getFaultCode(0).setValue(10); assertFalse(_am.deleteFaultCode(ff,ff.getFaultCode(0))); } public void testAddFaultFamily() throws Exception { boolean exception = false; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1 = ff1.size(); int size2; size1 = ff1.size(); try { _am.addFaultFamily(null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); FaultFamily ff = new FaultFamily(); exception = false; size1 = ff1.size(); try { _am.addFaultFamily(ff); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); exception = false; size1 = ff1.size(); ff.setName("foobar"); try{ _am.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.size(); assertEquals(size1,size2-1); exception = false; size1 = ff1.size(); ff = new FaultFamily(); ff.setName("foobar"); try{ _am.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); exception = false; size1 = ff1.size(); ff = new FaultFamily(); ff.setName("foobar2"); try{ _am.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.size(); assertEquals(size1,size2-1); } public void testAddFaultCode() throws Exception { boolean exception = false; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1,size2; size1 = ff1.get(0).getFaultCodeCount(); try { _am.addFaultCode(ff1.get(0),null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); FaultCode fc = new FaultCode(); exception = false; size1 = ff1.get(0).getFaultCodeCount(); fc.setValue(10233); try{ _am.addFaultCode(ff1.get(0),fc); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2-1); exception = false; size1 = ff1.get(0).getFaultCodeCount(); fc = new FaultCode(); fc.setValue(10233); try{ _am.addFaultCode(ff1.get(0),fc); }catch(Exception e){ exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultCodeCount(); fc = new FaultCode(); fc.setValue(10234); try{ _am.addFaultCode(ff1.get(0),fc); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2-1); } public void testAddFaultMember() throws Exception { boolean exception = false; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1,size2; size1 = ff1.get(0).getFaultMemberCount(); try { _am.addFaultMember(ff1.get(0),null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); FaultMember fm = new FaultMember(); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try { _am.addFaultMember(ff1.get(0),fm); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultMemberCount(); fm.setName("foobar"); try{ _am.addFaultMember(ff1.get(0),fm); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2-1); exception = false; size1 = ff1.get(0).getFaultMemberCount(); fm = new FaultMember(); fm.setName("foobar"); try{ _am.addFaultMember(ff1.get(0),fm); }catch(Exception e){ exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultMemberCount(); fm = new FaultMember(); fm.setName("foobar2"); try{ _am.addFaultMember(ff1.get(0),fm); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2-1); } public void testUpdateFaultFamily() throws Exception { boolean exception = false; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); FaultFamily ff,ffm; int size1; int size2; size1 = ff1.size(); try { _am.updateFaultFamily(null,null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); ff = new FaultFamily(); exception = false; size1 = ff1.size(); try { _am.updateFaultFamily(ff,null); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); exception = false; size1 = ff1.size(); try { _am.updateFaultFamily(null,ff); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); ff.setName("foobar"); exception = false; size1 = ff1.size(); try{ _am.updateFaultFamily(ff,null); }catch(Exception e){ exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); exception = false; size1 = ff1.size(); try{ _am.updateFaultFamily(null,ff); }catch(Exception e){ exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); exception = false; size1 = ff1.size(); ff = new FaultFamily(); ffm = new FaultFamily(); ff.setName("foobar"); ffm.setName("foobar2"); try{ _am.updateFaultFamily(ff,ffm); }catch(IllegalOperationException e){ exception = true; } assertTrue(exception); size2 = ff1.size(); assertEquals(size1,size2); exception = false; size1 = ff1.size(); try{ _am.addFaultFamily(ff); }catch(IllegalOperationException e){ exception = true; } assertFalse(exception); size2 = ff1.size(); assertEquals(size1,size2-1); exception = false; size1 = ff1.size(); try{ _am.updateFaultFamily(ff,ffm); }catch(IllegalOperationException e){ exception = true; } assertFalse(exception); size2 = ff1.size(); assertEquals(size1,size2); assertNotNull(_am.getFaultFamily("foobar2")); } public void testUpdateFaultMember() throws Exception { boolean exception = false; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); FaultFamily ff; FaultMember fm,fmm; int size1; int size2; ff = new FaultFamily(); size1 = ff1.get(0).getFaultMemberCount(); try { _am.updateFaultMember(null,null,null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try { _am.updateFaultMember(ff,null,null); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); ff.setName("foo"); fm = new FaultMember(); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try { _am.updateFaultMember(ff,fm,null); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); fmm = new FaultMember(); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try { _am.updateFaultMember(ff,null,fmm); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try { _am.updateFaultMember(ff,fm,fmm); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); exception = false; ff.setName(ff1.get(0).getName()); fm.setName("foobar"); fmm.setName("foobar2"); size1 = ff1.get(0).getFaultMemberCount(); try{ _am.updateFaultMember(ff,fm,fmm); }catch(IllegalOperationException e){ exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try{ _am.addFaultMember(ff,fm); }catch(IllegalOperationException e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2-1); exception = false; size1 = ff1.get(0).getFaultMemberCount(); try{ _am.updateFaultMember(ff,fm,fmm); }catch(IllegalOperationException e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultMemberCount(); assertEquals(size1,size2); assertNotNull(_am.getFaultMember(ff1.get(0).getName(), "foobar2")); } public void testUpdateFaultCode() throws Exception { boolean exception = false; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); FaultFamily ff; FaultCode fc,fcm; int size1; int size2; ff = new FaultFamily(); size1 = ff1.get(0).getFaultCodeCount(); try { _am.updateFaultCode(null,null,null); } catch(NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultCodeCount(); try { _am.updateFaultCode(ff,null,null); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); ff.setName("foo"); fc = new FaultCode(); exception = false; size1 = ff1.get(0).getFaultCodeCount(); try { _am.updateFaultCode(ff,fc,null); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); fcm = new FaultCode(); exception = false; size1 = ff1.get(0).getFaultCodeCount(); try { _am.updateFaultCode(ff,null,fcm); } catch (NullPointerException e) { exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); exception = false; ff.setName(ff1.get(0).getName()); fc.setValue(10342); fcm.setValue(10343); size1 = ff1.get(0).getFaultCodeCount(); try{ _am.updateFaultCode(ff,fc,fcm); }catch(IllegalOperationException e){ exception = true; } assertTrue(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); exception = false; size1 = ff1.get(0).getFaultCodeCount(); try{ _am.addFaultCode(ff,fc); }catch(IllegalOperationException e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2-1); exception = false; size1 = ff1.get(0).getFaultCodeCount(); try{ _am.updateFaultCode(ff,fc,fcm); }catch(IllegalOperationException e){ exception = true; } assertFalse(exception); size2 = ff1.get(0).getFaultCodeCount(); assertEquals(size1,size2); assertNotNull(_am.getFaultCode(ff1.get(0).getName(), 10343)); } public void testSaveToCDB() { boolean exception; _am = AlarmManager.getInstance(_daoManager.getAlarmDAO()); _am.loadFromCDB(); List<FaultFamily> ff1 = _am.getAllAlarms(); assertNotNull(ff1); int size1 = ff1.size(); int size2; exception = false; FaultFamily ff = new FaultFamily(); size1 = ff1.size(); ff.setName("foobar"); ff.setHelpUrl("http://www.foobar.cl/"); Contact ct = new Contact(); ct.setEmail("test@foobar.cl"); ct.setGsm("da"); ct.setName("Foobar"); ff.setContact(ct); FaultCode fc = new FaultCode(); fc.setValue(1); fc.setAction("a1"); fc.setCause("c1"); fc.setConsequence("co1"); fc.setPriority(1); fc.setProblemDescription("pd1"); ff.addFaultCode(fc); FaultMember fm = new FaultMember(); fm.setName("fmFoobar"); Location lc = new Location(); lc.setBuilding("b1"); lc.setFloor("f1"); lc.setMnemonic("m1"); lc.setPosition("p1"); lc.setRoom("r1"); fm.setLocation(lc); try{ _am.addFaultFamily(ff); }catch(Exception e){ exception = true; } assertFalse(exception); size2 = ff1.size(); assertEquals(size1,size2-1); _am.saveToCDB(); _am.loadFromCDB(); FaultFamily fft = _am.getFaultFamily("foobar"); assertNotNull(fft); assertEquals(fft.getName(),ff.getName()); assertEquals(fft.getHelpUrl(),ff.getHelpUrl()); exception = false; try { _am.deleteFaultFamily(fft); } catch (Exception e) { exception = true; } assertFalse(exception); _am.saveToCDB(); _am.loadFromCDB(); fft = _am.getFaultFamily("foobar"); assertNull(fft); } public void tearDown() { _acsInfo.disconnect(); AlarmManager.destroy(); } }