@Test public void Create3G_test7() { Profile3G profile3g = mock(Profile3G.class); when(profile3g.getProfileType()).thenReturn(ProfileType.T3G); when(profile3g.getIdleDchPromoAvg()).thenReturn(12000.0); when(profile3g.getIdleDchPromoMin()).thenReturn(1000.0); when(profile3g.getIdleDchPromoMax()).thenReturn(20000.0); when(profile3g.getFachDchPromoAvg()).thenReturn(1000.0); when(profile3g.getFachDchPromoMin()).thenReturn(2500.0); when(profile3g.getFachDchPromoMax()).thenReturn(6000.0); when(profile3g.getDchFachTimer()).thenReturn(5000.0); when(profile3g.getFachIdleTimer()).thenReturn(10000.0); double traceDuration = 2000.0; List<PacketInfo> packetlist = new ArrayList<PacketInfo>(); when(pktInfoArray[0].getTimeStamp()).thenReturn(date.getTime() - 7500.0); when(pktInfoArray[0].getDir()).thenReturn(PacketDirection.UNKNOWN); when(pktInfoArray[0].getLen()).thenReturn(1000); when(pktInfoArray[0].getStateMachine()).thenReturn(RRCState.PROMO_FACH_DCH); packetlist.add(pktInfoArray[0]); when(pktInfoArray[1].getTimeStamp()).thenReturn(date.getTime() + 10000.0); when(pktInfoArray[1].getDir()).thenReturn(PacketDirection.UPLINK); when(pktInfoArray[1].getLen()).thenReturn(1000); when(pktInfoArray[1].getStateMachine()).thenReturn(RRCState.PROMO_IDLE_DCH); packetlist.add(pktInfoArray[1]); when(pktInfoArray[2].getTimeStamp()).thenReturn(date.getTime() + 15000.0); when(pktInfoArray[2].getDir()).thenReturn(PacketDirection.UNKNOWN); when(pktInfoArray[2].getLen()).thenReturn(1000); when(pktInfoArray[2].getStateMachine()).thenReturn(RRCState.PROMO_IDLE_DCH); packetlist.add(pktInfoArray[2]); List<RrcStateRange> testList = rrcStateRangeFactory.create(packetlist, profile3g, traceDuration); assertEquals(1, testList.size()); }
@Override public List<RrcStateRange> create(List<PacketInfo> packetlist, Profile profile, double traceDuration) { if(profile.getProfileType() == ProfileType.T3G){ Profile3G prof = (Profile3G)profile; return this.create3G(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.WIFI){ ProfileWiFi prof = (ProfileWiFi)profile; return this.createWiFi(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.LTE){ ProfileLTE prof = (ProfileLTE)profile; return this.createLTE(packetlist, prof, traceDuration); }else{ throw new IllegalArgumentException("Invalid profile type for state machine: " + profile.getClass()); } }
RrcStateRangeFactoryImpl implements IRrcStateRangeFactory { @Override public List<RrcStateRange> create(List<PacketInfo> packetlist, Profile profile, double traceDuration) { if(profile.getProfileType() == ProfileType.T3G){ Profile3G prof = (Profile3G)profile; return this.create3G(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.WIFI){ ProfileWiFi prof = (ProfileWiFi)profile; return this.createWiFi(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.LTE){ ProfileLTE prof = (ProfileLTE)profile; return this.createLTE(packetlist, prof, traceDuration); }else{ throw new IllegalArgumentException("Invalid profile type for state machine: " + profile.getClass()); } } }
RrcStateRangeFactoryImpl implements IRrcStateRangeFactory { @Override public List<RrcStateRange> create(List<PacketInfo> packetlist, Profile profile, double traceDuration) { if(profile.getProfileType() == ProfileType.T3G){ Profile3G prof = (Profile3G)profile; return this.create3G(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.WIFI){ ProfileWiFi prof = (ProfileWiFi)profile; return this.createWiFi(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.LTE){ ProfileLTE prof = (ProfileLTE)profile; return this.createLTE(packetlist, prof, traceDuration); }else{ throw new IllegalArgumentException("Invalid profile type for state machine: " + profile.getClass()); } }  }
RrcStateRangeFactoryImpl implements IRrcStateRangeFactory { @Override public List<RrcStateRange> create(List<PacketInfo> packetlist, Profile profile, double traceDuration) { if(profile.getProfileType() == ProfileType.T3G){ Profile3G prof = (Profile3G)profile; return this.create3G(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.WIFI){ ProfileWiFi prof = (ProfileWiFi)profile; return this.createWiFi(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.LTE){ ProfileLTE prof = (ProfileLTE)profile; return this.createLTE(packetlist, prof, traceDuration); }else{ throw new IllegalArgumentException("Invalid profile type for state machine: " + profile.getClass()); } }  @Override List<RrcStateRange> create(List<PacketInfo> packetlist,
			Profile profile, double traceDuration); }
RrcStateRangeFactoryImpl implements IRrcStateRangeFactory { @Override public List<RrcStateRange> create(List<PacketInfo> packetlist, Profile profile, double traceDuration) { if(profile.getProfileType() == ProfileType.T3G){ Profile3G prof = (Profile3G)profile; return this.create3G(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.WIFI){ ProfileWiFi prof = (ProfileWiFi)profile; return this.createWiFi(packetlist, prof, traceDuration); }else if(profile.getProfileType() == ProfileType.LTE){ ProfileLTE prof = (ProfileLTE)profile; return this.createLTE(packetlist, prof, traceDuration); }else{ throw new IllegalArgumentException("Invalid profile type for state machine: " + profile.getClass()); } }  @Override List<RrcStateRange> create(List<PacketInfo> packetlist,
			Profile profile, double traceDuration);  }