List of usage examples for org.hibernate Session refresh
void refresh(Object object);
From source file:at.ac.tuwien.ifs.tita.dao.GenericHibernateDao.java
License:Apache License
/** {@inheritDoc} */ public void refresh(T entity) { Session s = getSession(); s.refresh(entity); }
From source file:au.com.nicta.ct.solution.tracking.CtTrackingModel.java
License:Open Source License
protected void deleteTracks(boolean showProgress) { // i.e. all tracks if (!valid()) return;/*from w ww . java 2s.c o m*/ // CtSolutions solution = (CtSolutions)CtObjectDirectory.get( "solution" ); // String hql1 = " DELETE FROM CtTracksDetections td " // + " WHERE td.ctTracks IN ( " // + " SELECT t FROM CtTracks t " // + " INNER JOIN t.ctSolutions s " // + " WHERE s.pkSolution = " + solution.getPkSolution() +" ) "; String hql1 = " SELECT td FROM CtTracksDetections td " + " WHERE td.ctTracks IN ( " + " SELECT t FROM CtTracks t " + " INNER JOIN t.ctSolutions s " + " WHERE s.pkSolution = " + _s.getPkSolution() + " ) "; // String hql1 = " SELECT t FROM CtTracks t " // + " INNER JOIN t.ctSolutions s " // + " WHERE s.pkSolution = " + solution.getPkSolution();// +" ) "; String hql2 = " DELETE FROM CtTracksDetections td " + " WHERE td IN (:vals) "; String hql3 = " DELETE FROM CtTracks t " + " WHERE t.ctSolutions = " + _s.getPkSolution(); // clear(); Session session = CtSession.Current(); session.beginTransaction(); Query q1 = session.createQuery(hql1); List results = q1.list(); if (results.isEmpty()) { session.getTransaction().commit(); return; // mnothing changed } Query q2 = session.createQuery(hql2); q2.setParameterList("vals", results); int rowCount2 = q2.executeUpdate(); // this query fails Query q3 = session.createQuery(hql3); int rowCount3 = q3.executeUpdate(); session.getTransaction().commit(); session.refresh(_s); //////////////////////////////////////////////////////////////////////// // Manually refresh detections and tracks as seems to be a bug with // their consistency //////////////////////////////////////////////////////////////////////// CtPageFrame.showWaitCursor(); Set<CtDetections> cd = _s.getCtDetectionses(); Set<CtTracks> ct = _s.getCtTrackses(); for (CtDetections d : cd) { session.refresh(d); } for (CtTracks t : ct) { session.refresh(t); } CtPageFrame.showDefaultCursor(); //////////////////////////////////////////////////////////////////////// refresh(_cc, _ism, _twm, _s, showProgress); // fireModelChanged(); in update anyway }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.DayBookings.java
License:Open Source License
/** * Finds a rig that matches the booking constraints and is viable (i.e. is * ready to be allocated to a session. * //from w w w.j a va 2 s. c o m * @param current rig assigned to booking which is assumed to be offline * @param mb memory booking * @param ses database session * @return viable matching rig or null if not found */ public Rig findViableRig(String current, MBooking mb, Session ses) { /* Rig bookings cannot be balanced to other rigs, so we can immediately * give a no success response. */ if (mb.getType() == BType.RIG) return null; RigDao dao = new RigDao(ses); Rig currentRig = dao.findByName(current); if (currentRig == null) { this.logger.error("Attempt to find a viable rig for booking failed because rig " + current + " was not " + "found. Serious state loss."); return null; } RigBookings rb = this.getRigBookings(currentRig, ses), next; switch (mb.getType()) { case TYPE: next = rb.getTypeLoopNext(); while (next != rb) { if (this.outerLoadBalance(next, mb, false)) { Rig viable = (Rig) ses.merge(next.getRig()); ses.refresh(viable); if (viable.isActive() && viable.isOnline() && !viable.isInSession()) { this.logger.debug("Viable load balancing found rig " + viable.getName() + " can satisfy " + "booking for rig type " + mb.getRigType().getName() + '.'); this.outerLoadBalance(next, mb, true); next.commitBooking(mb); rb.removeBooking(mb); return viable; } } next = next.getTypeLoopNext(); } break; case CAPABILITY: next = rb.getCapsLoopNext(mb.getRequestCapabilities()); while (next != rb) { if (this.outerLoadBalance(next, mb, false)) { Rig viable = (Rig) ses.merge(next.getRig()); if (viable.isActive() && viable.isOnline() && !viable.isInSession()) { this.logger.debug("Viable load balancing found rig " + viable.getName() + " can satisfy " + "booking for request capabilities " + mb.getRequestCapabilities().getCapabilities() + '.'); this.outerLoadBalance(next, mb, true); next.commitBooking(mb); rb.removeBooking(mb); return viable; } } next = next.getCapsLoopNext(mb.getRequestCapabilities()); } break; } return null; }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testFindBestFitsC1() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();/*from w ww . ja va2 s . com*/ UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("RIG"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRig(r1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); rt2tm.add(Calendar.MINUTE, 15); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); bt.add(Calendar.HOUR, 7); bt.add(Calendar.MINUTE, 30); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); b.setDuration(3600); b.setResourceType("CAPABILITY"); b.setRequestCapabilities(rcaps1); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); List<MRange> fits = this.day.findBestFits(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertFalse(st); assertNotNull(fits); assertEquals(2, fits.size()); MRange r = fits.get(0); assertEquals(28, r.getStartSlot()); assertEquals(31, r.getEndSlot()); assertEquals(4, r.getNumSlots()); r = fits.get(1); assertEquals(33, r.getStartSlot()); assertEquals(36, r.getEndSlot()); assertEquals(4, r.getNumSlots()); }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testFindBestFitsR1() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();/*www . ja v a 2 s . c om*/ UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("RIG"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRig(r1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); bt.add(Calendar.HOUR, 2); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); b.setDuration(3600); b.setResourceType("RIG"); b.setRig(r1); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); List<MRange> fits = this.day.findBestFits(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertFalse(st); assertNotNull(fits); assertEquals(2, fits.size()); MRange r = fits.get(0); assertEquals(6, r.getStartSlot()); assertEquals(7, r.getEndSlot()); assertEquals(2, r.getNumSlots()); r = fits.get(1); assertEquals(10, r.getStartSlot()); assertEquals(13, r.getEndSlot()); assertEquals(4, r.getNumSlots()); }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testFindBestFitsT1() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();/*from ww w. j ava2s . c o m*/ UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("RIG"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRig(r1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); b.setDuration(1800); b.setResourceType("TYPE"); b.setRigType(rigType1); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); List<MRange> fits = this.day.findBestFits(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertFalse(st); assertNotNull(fits); assertEquals(1, fits.size()); MRange r = fits.get(0); assertEquals(6, r.getStartSlot()); assertEquals(7, r.getEndSlot()); assertEquals(2, r.getNumSlots()); }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testCreateBookingLots() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();//from w w w . ja v a 2 s.c om UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("RIG"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRig(r1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); bt.add(Calendar.HOUR, 4); bt.add(Calendar.MINUTE, 30); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); b.setDuration(3600); b.setResourceType("TYPE"); b.setRigType(rigType2); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); mb = new MBooking(b, this.dayStr); boolean st1 = this.day.createBooking(mb, ses); bt.add(Calendar.MINUTE, 30); bt.add(Calendar.HOUR, 6); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); mb = new MBooking(b, this.dayStr); boolean st2 = this.day.createBooking(mb, ses); mb = new MBooking(b, this.dayStr); boolean st3 = this.day.createBooking(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertTrue(st); assertFalse(st1); assertTrue(st2); assertFalse(st3); }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testCreateBookingRT1Full() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();/*from w w w .j a v a2s . co m*/ UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("RIG"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRig(r1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); bt.add(Calendar.HOUR, 5); bt.add(Calendar.MINUTE, 30); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); b.setDuration(3600); b.setResourceType("TYPE"); b.setRigType(rigType2); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertFalse(st); }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testCreateBookingRT1LoadBalance() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();/*from w w w .j a v a2 s . c o m*/ UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("RIG"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRig(r1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); bt.add(Calendar.HOUR, 5); b.setStartTime(bt.getTime()); bt.add(Calendar.HOUR, 1); b.setEndTime(bt.getTime()); b.setDuration(3600); b.setResourceType("TYPE"); b.setRigType(rigType1); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertTrue(st); }
From source file:au.edu.uts.eng.remotelabs.schedserver.bookings.impl.slotsengine.tests.DayBookingsTester.java
License:Open Source License
public void testCreateBookingRT2Free() throws Exception { Session ses = DataAccessActivator.getNewSession(); ses.beginTransaction();/* w ww . j a v a 2 s. c o m*/ UserClass uclass1 = new UserClass(); uclass1.setName("booktestclass"); uclass1.setActive(true); uclass1.setQueuable(false); uclass1.setBookable(true); uclass1.setTimeHorizon(1000); ses.save(uclass1); User us1 = new User(); us1.setName("bktestuser1"); us1.setNamespace("BKNS"); us1.setPersona("USER"); ses.save(us1); RigType rigType1 = new RigType("booktestrigtype", 300, false); ses.save(rigType1); RigType rigType2 = new RigType("booktestrigtype2", 300, false); ses.save(rigType2); RigCapabilities caps1 = new RigCapabilities("book,test,foo"); ses.save(caps1); RigCapabilities caps2 = new RigCapabilities("book,test,bar"); ses.save(caps2); RigCapabilities caps3 = new RigCapabilities("book,baz,foo"); ses.save(caps3); RequestCapabilities rcaps1 = new RequestCapabilities("book"); ses.save(rcaps1); RequestCapabilities rcaps2 = new RequestCapabilities("foo"); ses.save(rcaps2); RequestCapabilities rcaps3 = new RequestCapabilities("bar"); ses.save(rcaps3); Rig r1 = new Rig(); r1.setName("bkrig1"); r1.setRigType(rigType1); r1.setLastUpdateTimestamp(new Date()); r1.setRigCapabilities(caps1); ses.save(r1); Rig r2 = new Rig(); r2.setName("bkrig2"); r2.setRigType(rigType1); r2.setLastUpdateTimestamp(new Date()); r2.setRigCapabilities(caps2); ses.save(r2); Rig r3 = new Rig(); r3.setName("bkrig3"); r3.setRigType(rigType2); r3.setLastUpdateTimestamp(new Date()); r3.setRigCapabilities(caps3); ses.save(r3); ResourcePermission perm1 = new ResourcePermission(); perm1.setUserClass(uclass1); perm1.setType("TYPE"); perm1.setSessionDuration(3600); perm1.setQueueActivityTimeout(300); perm1.setAllowedExtensions((short) 10); perm1.setSessionActivityTimeout(300); perm1.setExtensionDuration(300); perm1.setMaximumBookings(10); perm1.setRigType(rigType1); perm1.setStartTime(new Date()); perm1.setExpiryTime(new Date()); perm1.setDisplayName("bookperm"); ses.save(perm1); /* #### BOOKINGS FOR R1 ########################################### */ Calendar r1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk1 = new Bookings(); bk1.setActive(true); bk1.setDuration(3600); /* Slots 2 - 5. */ r1tm.add(Calendar.MINUTE, 30); bk1.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 1); bk1.setEndTime(r1tm.getTime()); bk1.setResourcePermission(perm1); bk1.setResourceType("RIG"); bk1.setRig(r1); bk1.setUser(us1); bk1.setUserName(us1.getName()); bk1.setUserNamespace(us1.getNamespace()); ses.save(bk1); Bookings bk2 = new Bookings(); bk2.setActive(true); bk2.setCancelReason("Test cancel."); bk2.setDuration(1800); /* Slots 8 - 9. */ r1tm.add(Calendar.MINUTE, 30); bk2.setStartTime(r1tm.getTime()); r1tm.add(Calendar.MINUTE, 30); bk2.setEndTime(r1tm.getTime()); bk2.setResourcePermission(perm1); bk2.setResourceType("RIG"); bk2.setRig(r1); bk2.setUser(us1); bk2.setUserName(us1.getName()); bk2.setUserNamespace(us1.getNamespace()); ses.save(bk2); Bookings bk3 = new Bookings(); bk3.setActive(true); bk3.setDuration(7200); /* Slots 36 - 43. */ r1tm.add(Calendar.MINUTE, 30); r1tm.add(Calendar.HOUR, 6); bk3.setStartTime(r1tm.getTime()); r1tm.add(Calendar.HOUR, 2); bk3.setEndTime(r1tm.getTime()); bk3.setResourcePermission(perm1); bk3.setResourceType("RIG"); bk3.setRig(r1); bk3.setUser(us1); bk3.setUserName(us1.getName()); bk3.setUserNamespace(us1.getNamespace()); ses.save(bk3); /* #### BOOKINGS FOR R2 ########################################### */ Calendar r2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk8 = new Bookings(); bk8.setActive(true); bk8.setDuration(3600); /* Slots 13 - 16. */ r2tm.add(Calendar.HOUR, 3); bk8.setStartTime(r2tm.getTime()); r2tm.add(Calendar.HOUR, 1); bk8.setEndTime(r2tm.getTime()); bk8.setResourcePermission(perm1); bk8.setResourceType("RIG"); bk8.setRig(r2); bk8.setUser(us1); bk8.setUserName(us1.getName()); bk8.setUserNamespace(us1.getNamespace()); ses.save(bk8); Bookings bk9 = new Bookings(); bk9.setActive(true); bk9.setDuration(1800); /* Slots 36 - 37. */ r2tm.add(Calendar.HOUR, 5); bk9.setStartTime(r2tm.getTime()); r2tm.add(Calendar.MINUTE, 30); bk9.setEndTime(r2tm.getTime()); bk9.setResourcePermission(perm1); bk9.setResourceType("RIG"); bk9.setRig(r2); bk9.setUser(us1); bk9.setUserName(us1.getName()); bk9.setUserNamespace(us1.getNamespace()); ses.save(bk9); /* #### BOOKINGS FOR R3 ########################################### */ Calendar r3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk10 = new Bookings(); bk10.setActive(true); bk10.setDuration(1800); /* Slots 2 - 3. */ r3tm.add(Calendar.MINUTE, 30); bk10.setStartTime(r3tm.getTime()); r3tm.add(Calendar.MINUTE, 30); bk10.setEndTime(r3tm.getTime()); bk10.setResourcePermission(perm1); bk10.setResourceType("RIG"); bk10.setRig(r3); bk10.setUser(us1); bk10.setUserName(us1.getName()); bk10.setUserNamespace(us1.getNamespace()); ses.save(bk10); Bookings bk11 = new Bookings(); bk11.setActive(true); bk11.setDuration(3600); /* Slots 12 - 15. */ r3tm.add(Calendar.HOUR, 2); bk11.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk11.setEndTime(r3tm.getTime()); bk11.setResourcePermission(perm1); bk11.setResourceType("RIG"); bk11.setRig(r3); bk11.setUser(us1); bk11.setUserName(us1.getName()); bk11.setUserNamespace(us1.getNamespace()); ses.save(bk11); Bookings bk12 = new Bookings(); bk12.setActive(true); bk12.setDuration(3600); /* Slots 24 - 27. */ r3tm.add(Calendar.HOUR, 2); bk12.setStartTime(r3tm.getTime()); r3tm.add(Calendar.HOUR, 1); bk12.setEndTime(r3tm.getTime()); bk12.setResourcePermission(perm1); bk12.setResourceType("RIG"); bk12.setRig(r3); bk12.setUser(us1); bk12.setUserName(us1.getName()); bk12.setUserNamespace(us1.getNamespace()); ses.save(bk12); /* #### Type bookings for RigType1 ####################################*/ Calendar rt1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk4 = new Bookings(); bk4.setActive(true); bk4.setDuration(1800); /* Slots 0 - 1. */ bk4.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.MINUTE, 30); bk4.setEndTime(rt1tm.getTime()); bk4.setResourcePermission(perm1); bk4.setResourceType("TYPE"); bk4.setRigType(rigType1); bk4.setUser(us1); bk4.setUserName(us1.getName()); bk4.setUserNamespace(us1.getNamespace()); ses.save(bk4); Bookings bk13 = new Bookings(); bk13.setActive(true); bk13.setDuration(7200); /* Slots 0 - 7. */ rt1tm.add(Calendar.MINUTE, -30); bk13.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 2); bk13.setEndTime(rt1tm.getTime()); bk13.setResourcePermission(perm1); bk13.setResourceType("TYPE"); bk13.setRigType(rigType1); bk13.setUser(us1); bk13.setUserName(us1.getName()); bk13.setUserNamespace(us1.getNamespace()); ses.save(bk13); Bookings bk5 = new Bookings(); bk5.setActive(true); bk5.setDuration(3600); /* Slots 20 - 23. */ rt1tm.add(Calendar.HOUR, 3); bk5.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk5.setEndTime(rt1tm.getTime()); bk5.setResourcePermission(perm1); bk5.setResourceType("TYPE"); bk5.setRigType(rigType1); bk5.setUser(us1); bk5.setUserName(us1.getName()); bk5.setUserNamespace(us1.getNamespace()); ses.save(bk5); Bookings bk14 = new Bookings(); bk14.setActive(true); bk14.setDuration(3600); /* Slots 24 - 27. */ bk14.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); bk14.setEndTime(rt1tm.getTime()); bk14.setResourcePermission(perm1); bk14.setResourceType("TYPE"); bk14.setRigType(rigType1); bk14.setUser(us1); bk14.setUserName(us1.getName()); bk14.setUserNamespace(us1.getNamespace()); ses.save(bk14); Bookings bk15 = new Bookings(); bk15.setActive(true); bk15.setDuration(5400); /* Slots 52 - 58. */ rt1tm.add(Calendar.HOUR, 6); bk15.setStartTime(rt1tm.getTime()); rt1tm.add(Calendar.HOUR, 1); rt1tm.add(Calendar.MINUTE, 30); bk15.setEndTime(rt1tm.getTime()); bk15.setResourcePermission(perm1); bk15.setResourceType("TYPE"); bk15.setRigType(rigType1); bk15.setUser(us1); bk15.setUserName(us1.getName()); bk15.setUserNamespace(us1.getNamespace()); ses.save(bk15); /* #### Type bookings for RigType2 ####################################*/ Calendar rt2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk16 = new Bookings(); bk16.setActive(true); bk16.setDuration(3600); /* Slots 52 - 59. */ rt2tm.add(Calendar.HOUR, 7); bk16.setStartTime(rt2tm.getTime()); rt2tm.add(Calendar.HOUR, 1); bk16.setEndTime(rt2tm.getTime()); bk16.setResourcePermission(perm1); bk16.setResourceType("TYPE"); bk16.setRigType(rigType2); bk16.setUser(us1); bk16.setUserName(us1.getName()); bk16.setUserNamespace(us1.getNamespace()); ses.save(bk16); /* #### Bookings for Request Caps 1. #################################*/ Calendar rcap1tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk6 = new Bookings(); bk6.setActive(true); bk6.setDuration(1800); /* Slots 20 - 21. */ rcap1tm.add(Calendar.HOUR, 5); bk6.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk6.setEndTime(rcap1tm.getTime()); bk6.setResourcePermission(perm1); bk6.setResourceType("CAPABILITY"); bk6.setRequestCapabilities(rcaps1); bk6.setUser(us1); bk6.setUserName(us1.getName()); bk6.setUserNamespace(us1.getNamespace()); ses.save(bk6); Bookings bk7 = new Bookings(); bk7.setActive(true); bk7.setDuration(1800); /* Slots 22 - 23. */ bk7.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.MINUTE, 30); bk7.setEndTime(rcap1tm.getTime()); bk7.setResourcePermission(perm1); bk7.setResourceType("CAPABILITY"); bk7.setRequestCapabilities(rcaps1); bk7.setUser(us1); bk7.setUserName(us1.getName()); bk7.setUserNamespace(us1.getNamespace()); ses.save(bk7); Bookings bk17 = new Bookings(); bk17.setActive(true); bk17.setDuration(1800); /* Slots 32 - 35. */ rcap1tm.add(Calendar.HOUR, 2); bk17.setStartTime(rcap1tm.getTime()); rcap1tm.add(Calendar.HOUR, 1); bk17.setEndTime(rcap1tm.getTime()); bk17.setResourcePermission(perm1); bk17.setResourceType("CAPABILITY"); bk17.setRequestCapabilities(rcaps1); bk17.setUser(us1); bk17.setUserName(us1.getName()); bk17.setUserNamespace(us1.getNamespace()); ses.save(bk17); /* #### Bookings for Request Caps 2. #################################*/ Calendar rcap2tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk18 = new Bookings(); bk18.setActive(true); bk18.setDuration(1800); /* Slots 56 - 59. */ rcap2tm.add(Calendar.HOUR, 14); bk18.setStartTime(rcap2tm.getTime()); rcap2tm.add(Calendar.HOUR, 1); bk18.setEndTime(rcap2tm.getTime()); bk18.setResourcePermission(perm1); bk18.setResourceType("CAPABILITY"); bk18.setRequestCapabilities(rcaps2); bk18.setUser(us1); bk18.setUserName(us1.getName()); bk18.setUserNamespace(us1.getNamespace()); ses.save(bk18); /* #### Bookings for Request Caps 3. #################################*/ Calendar rcap3tm = TimeUtil.getDayBegin(this.dayStr); Bookings bk19 = new Bookings(); bk19.setActive(true); bk19.setDuration(4500); /* Slots 56 - 59. */ rcap3tm.add(Calendar.HOUR, 7); bk19.setStartTime(rcap3tm.getTime()); rcap3tm.add(Calendar.HOUR, 1); rcap3tm.add(Calendar.MINUTE, 15); bk19.setEndTime(rcap3tm.getTime()); bk19.setResourcePermission(perm1); bk19.setResourceType("CAPABILITY"); bk19.setRequestCapabilities(rcaps3); bk19.setUser(us1); bk19.setUserName(us1.getName()); bk19.setUserNamespace(us1.getNamespace()); ses.save(bk19); ses.getTransaction().commit(); ses.beginTransaction(); MatchingCapabilities mat1 = new MatchingCapabilities(rcaps1, caps1); ses.save(mat1); MatchingCapabilities mat2 = new MatchingCapabilities(rcaps1, caps2); ses.save(mat2); MatchingCapabilities mat3 = new MatchingCapabilities(rcaps1, caps3); ses.save(mat3); MatchingCapabilities mat4 = new MatchingCapabilities(rcaps2, caps1); ses.save(mat4); MatchingCapabilities mat5 = new MatchingCapabilities(rcaps2, caps3); ses.save(mat5); MatchingCapabilities mat6 = new MatchingCapabilities(rcaps3, caps2); ses.save(mat6); ses.getTransaction().commit(); ses.refresh(rcaps1); ses.refresh(rcaps2); ses.refresh(rcaps3); ses.refresh(caps1); ses.refresh(caps2); ses.refresh(caps3); ses.refresh(r1); ses.refresh(r2); ses.refresh(r3); ses.refresh(rigType1); ses.refresh(rigType2); Bookings b = new Bookings(); b.setActive(true); Calendar bt = TimeUtil.getDayBegin(this.dayStr); bt.add(Calendar.HOUR, 1); bt.add(Calendar.MINUTE, 30); b.setStartTime(bt.getTime()); bt.add(Calendar.MINUTE, 30); b.setEndTime(bt.getTime()); b.setDuration(1800); b.setResourceType("TYPE"); b.setRigType(rigType1); b.setUser(us1); b.setUserName(us1.getName()); b.setUserName(us1.getNamespace()); b.setResourcePermission(perm1); MBooking mb = new MBooking(b, this.dayStr); boolean st = this.day.createBooking(mb, ses); ses.beginTransaction(); ses.delete(bk1); ses.delete(bk2); ses.delete(bk3); ses.delete(bk4); ses.delete(bk5); ses.delete(bk6); ses.delete(bk7); ses.delete(bk8); ses.delete(bk9); ses.delete(bk10); ses.delete(bk11); ses.delete(bk12); ses.delete(bk13); ses.delete(bk14); ses.delete(bk15); ses.delete(bk16); ses.delete(bk17); ses.delete(bk18); ses.delete(bk19); ses.delete(perm1); ses.delete(r1); ses.delete(r2); ses.delete(r3); ses.delete(mat1); ses.delete(mat2); ses.delete(mat3); ses.delete(mat4); ses.delete(mat5); ses.delete(mat6); ses.delete(caps1); ses.delete(caps2); ses.delete(caps3); ses.delete(rcaps1); ses.delete(rcaps2); ses.delete(rcaps3); ses.delete(rigType1); ses.delete(rigType2); ses.delete(us1); ses.delete(uclass1); ses.getTransaction().commit(); assertTrue(bk1.isActive()); assertTrue(bk2.isActive()); assertTrue(bk3.isActive()); assertTrue(bk4.isActive()); assertTrue(bk5.isActive()); assertTrue(bk6.isActive()); assertTrue(bk7.isActive()); assertTrue(bk8.isActive()); assertTrue(bk9.isActive()); assertTrue(bk10.isActive()); assertTrue(bk11.isActive()); assertTrue(bk12.isActive()); assertTrue(bk13.isActive()); assertTrue(bk14.isActive()); assertTrue(bk15.isActive()); assertTrue(bk16.isActive()); assertTrue(bk17.isActive()); assertTrue(bk18.isActive()); assertTrue(bk19.isActive()); assertTrue(st); }