@Test public void testUpdateMsisdnForSubscriberWithBothPacks() throws Exception { Long oldMsisdn = subscriptionHelper.makeNumber(); Long newMsisdn = subscriptionHelper.makeNumber(); Subscription childSubscription = subscriptionHelper.mksub( SubscriptionOrigin.MCTS_IMPORT, DateTime.now(), SubscriptionPackType.CHILD, oldMsisdn); String childId = "0123456789"; childSubscription.getSubscriber().setChild(new MctsChild(childId)); subscriberDataService.update(childSubscription.getSubscriber()); Subscription pregnancySubscription = subscriptionHelper.mksub( SubscriptionOrigin.MCTS_IMPORT, DateTime.now().minusDays(150), SubscriptionPackType.PREGNANCY, oldMsisdn); String motherId = "9876543210"; pregnancySubscription.getSubscriber().setMother(new MctsMother(motherId)); subscriberDataService.update(pregnancySubscription.getSubscriber()); assertEquals( 2, subscriberDataService .findByCallingNumber(oldMsisdn) .getActiveAndPendingSubscriptions() .size()); Reader reader = createUpdateReaderWithHeaders("1," + motherId + ",,,,,,,,,,,,," + newMsisdn); mctsBeneficiaryUpdateService.updateBeneficiaryData(reader); Subscriber pregnancySubscriber = subscriberDataService.findByCallingNumber(newMsisdn); Subscriber childSubscriber = subscriberDataService.findByCallingNumber(oldMsisdn); assertNotNull(pregnancySubscriber); assertNotNull(childSubscriber); assertNotEquals(childSubscriber, pregnancySubscriber); assertEquals(newMsisdn, pregnancySubscriber.getCallingNumber()); assertEquals(oldMsisdn, childSubscriber.getCallingNumber()); assertNull(pregnancySubscriber.getChild()); assertNull(childSubscriber.getMother()); assertEquals(1, pregnancySubscriber.getActiveAndPendingSubscriptions().size()); assertEquals(1, childSubscriber.getActiveAndPendingSubscriptions().size()); }