@Test(groups = "slow")
public void testENT_REPAIR_VIEW_CHANGED_newEvent() throws Exception {
final TestWithException test = new TestWithException();
final DateTime startDate = clock.getUTCNow();
final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
test.withException(new TestWithExceptionCallback() {
@Override
public void doTest() throws SubscriptionBaseRepairException, SubscriptionBaseApiException {
final BundleBaseTimeline bundleRepair = repairApi.getBundleTimeline(bundle.getId(), callContext);
testUtil.sortEventsOnBundle(bundleRepair);
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Assault-Rifle", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN);
final NewEvent ne = testUtil.createNewEvent(SubscriptionBaseTransitionType.CHANGE, baseSubscription.getStartDate().plusDays(10), spec);
final List<DeletedEvent> des = new LinkedList<SubscriptionBaseTimeline.DeletedEvent>();
des.add(testUtil.createDeletedEvent(bundleRepair.getSubscriptions().get(0).getExistingEvents().get(0).getEventId()));
des.add(testUtil.createDeletedEvent(bundleRepair.getSubscriptions().get(0).getExistingEvents().get(1).getEventId()));
final SubscriptionBaseTimeline sRepair = testUtil.createSubscriptionRepair(baseSubscription.getId(), des, Collections.singletonList(ne));
final BundleBaseTimeline bRepair = testUtil.createBundleRepair(bundle.getId(), bundleRepair.getViewId(), Collections.singletonList(sRepair));
testListener.pushExpectedEvent(NextEvent.CHANGE);
final DateTime changeTime = clock.getUTCNow();
baseSubscription.changePlanWithDate("Assault-Rifle", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, changeTime, callContext);
assertListenerStatus();
repairApi.repairBundle(bRepair, true, callContext);
assertListenerStatus();
}
}, ErrorCode.SUB_REPAIR_VIEW_CHANGED);
}