/*
* TeleStax, Open Source Cloud Communications Copyright 2012.
* and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.mobicents.smsc.slee.services.deliverysbb;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Date;
import java.util.UUID;
import javax.slee.ActivityContextInterface;
import javax.slee.CreateException;
import javax.slee.RolledBackContext;
import javax.slee.SbbContext;
import javax.slee.facilities.FacilityException;
import javax.slee.facilities.TimerID;
import javax.slee.facilities.TraceLevel;
import javax.slee.facilities.Tracer;
import org.mobicents.smsc.domain.MProcManagement;
import org.mobicents.smsc.domain.SmscPropertiesManagement;
import org.mobicents.smsc.library.ErrorAction;
import org.mobicents.smsc.library.Sms;
import org.mobicents.smsc.library.SmsSet;
import org.mobicents.smsc.library.SmsSetCache;
import org.mobicents.smsc.mproc.ProcessingType;
import org.mobicents.smsc.slee.resources.persistence.PersistenceRAInterfaceProxy;
import org.mobicents.smsc.slee.services.deliverysbb.DeliveryCommonSbb;
import org.mobicents.smsc.slee.services.deliverysbb.PendingRequestsList;
import org.restcomm.smpp.GenerateType;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
*
* @author sergey vetyutnev
*
*/
public class DeliveryCommonSbbTest {
private PersistenceRAInterfaceProxy pers;
private boolean cassandraDbInited;
@BeforeMethod
public void setUpClass() throws Exception {
System.out.println("setUpClass");
this.pers = new PersistenceRAInterfaceProxy();
this.cassandraDbInited = this.pers.testCassandraAccess();
if (!this.cassandraDbInited)
return;
this.pers.start();
MProcManagement.getInstance("TestDeliveryCommonSbb");
SmscPropertiesManagement.getInstance("TestDeliveryCommonSbb");
SmscPropertiesManagement smscPropertiesManagement = SmscPropertiesManagement.getInstance();
smscPropertiesManagement.setGenerateArchiveTable(new GenerateType(0));
smscPropertiesManagement.setGenerateCdr(new GenerateType(0));
smscPropertiesManagement.setVpProlong(15 * 60); // 15 min
}
@AfterMethod
public void tearDownClass() throws Exception {
System.out.println("tearDownClass");
SmscPropertiesManagement smscPropertiesManagement = SmscPropertiesManagement.getInstance();
if (smscPropertiesManagement != null) {
smscPropertiesManagement.setGenerateArchiveTable(new GenerateType(7));
smscPropertiesManagement.setGenerateCdr(new GenerateType(7));
smscPropertiesManagement.setVpProlong(120);
}
}
@Test(groups = { "DeliveryCommonSbb" })
public void testCore() {
if (!this.cassandraDbInited)
return;
SmsSetCache.SMSSET_MSG_PRO_SEGMENT_LIMIT = 3;
// 01
DeliveryCommonSbbProxy sbb = initiateSbb(null);
loadSbb(sbb);
SmsSet smsSet = new SmsSet();
for (int i1 = 0; i1 < 20; i1++) {
Sms sms = createSms(i1);
SmsSet smsSet2 = new SmsSet();
smsSet2.addSms(sms);
smsSet.addSmsSet(smsSet2);
}
sbb.addInitialMessageSet(smsSet);
SmsSetCache.getInstance().addProcessingSmsSet(smsSet.getTargetId(), smsSet, 0);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 20L);
assertNull(sbb.getMessageInSendingPool(0));
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 0L);
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
storeSbb(sbb);
// 02
sbb = initiateSbb(sbb);
loadSbb(sbb);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 20L);
assertNull(sbb.getMessageInSendingPool(0));
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 0L);
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
int cnt = sbb.obtainNextMessagesSendingPool(5, ProcessingType.SMPP);
assertEquals(cnt, 5);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 20L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0L);
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 5L);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 5);
assertFalse(sbb.isMessageConfirmedInSendingPool(1));
sbb.registerMessageInSendingPool(0, 100, null);
sbb.registerMessageInSendingPool(1, 101, null);
sbb.registerMessageInSendingPool(2, 102, null);
sbb.registerMessageInSendingPool(3, 103, null);
sbb.registerMessageInSendingPool(4, 104, null);
sbb.endRegisterMessageInSendingPool();
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 20L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0L);
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 5L);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 5);
assertFalse(sbb.isMessageConfirmedInSendingPool(1));
storeSbb(sbb);
// 03
sbb = initiateSbb(sbb);
loadSbb(sbb);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 20L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0L);
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 5L);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 5);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertFalse(sbb.isMessageConfirmedInSendingPool(1));
ConfirmMessageInSendingPool res1 = sbb.confirmMessageInSendingPool(101);
assertFalse(res1.splittedMessage);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 4);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertTrue(sbb.isMessageConfirmedInSendingPool(1));
storeSbb(sbb);
storeSbb(sbb);
// 04
sbb = initiateSbb(sbb);
loadSbb(sbb);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 20L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0L);
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 5L);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 4);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertTrue(sbb.isMessageConfirmedInSendingPool(1));
res1 = sbb.confirmMessageInSendingPool(100);
res1 = sbb.confirmMessageInSendingPool(102);
res1 = sbb.confirmMessageInSendingPool(103);
res1 = sbb.confirmMessageInSendingPool(104);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertTrue(sbb.isMessageConfirmedInSendingPool(0));
assertTrue(sbb.isMessageConfirmedInSendingPool(1));
sbb.commitSendingPoolMsgCount();
Sms sms = sbb.obtainNextMessage(ProcessingType.SMPP);
assertEquals(sms.getMessageId(), 5L);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 15L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 5L);
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 6L);
assertEquals(sbb.getSendingPoolMessageCount(), 1);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 1);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
storeSbb(sbb);
// 05
sbb = initiateSbb(sbb);
loadSbb(sbb);
assertFalse(sbb.isDeliveringEnded());
assertEquals(sbb.getTotalUnsentMessageCount(), 15L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 5L);
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 6L);
assertEquals(sbb.getSendingPoolMessageCount(), 1);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 1);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
sbb.commitSendingPoolMsgCount();
assertEquals(sbb.getTotalUnsentMessageCount(), 14L);
assertNull(sbb.getMessageInSendingPool(0));
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 6L);
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertFalse(sbb.isDeliveringEnded());
cnt = sbb.obtainNextMessagesSendingPool(50, ProcessingType.SMPP);
assertEquals(cnt, 14);
assertEquals(sbb.getTotalUnsentMessageCount(), 14L);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 6L);
assertNull(sbb.getUnsentMessage(0));
assertEquals(sbb.getSendingPoolMessageCount(), 14);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 14);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertFalse(sbb.isDeliveringEnded());
sbb.commitSendingPoolMsgCount();
assertEquals(sbb.getTotalUnsentMessageCount(), 0L);
assertNull(sbb.getMessageInSendingPool(0));
assertNull(sbb.getUnsentMessage(0));
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertFalse(sbb.isDeliveringEnded());
sbb.markDeliveringIsEnded(true);
assertEquals(sbb.getTotalUnsentMessageCount(), 0L);
assertNull(sbb.getMessageInSendingPool(0));
assertNull(sbb.getUnsentMessage(0));
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertTrue(sbb.isDeliveringEnded());
storeSbb(sbb);
// 06
sbb = initiateSbb(sbb);
loadSbb(sbb);
assertEquals(sbb.getTotalUnsentMessageCount(), 0L);
assertNull(sbb.getMessageInSendingPool(0));
assertNull(sbb.getUnsentMessage(0));
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
assertTrue(sbb.isDeliveringEnded());
}
@Test(groups = { "DeliveryCommonSbb" })
public void testFailureLists() {
if (!this.cassandraDbInited)
return;
SmsSetCache.SMSSET_MSG_PRO_SEGMENT_LIMIT = 3;
DeliveryCommonSbbProxy sbb = initiateSbb(null);
loadSbb(sbb);
SmsSet smsSet = new SmsSet();
for (int i1 = 0; i1 < 20; i1++) {
Sms sms = createSms(i1);
SmsSet smsSet2 = new SmsSet();
smsSet2.addSms(sms);
smsSet.addSmsSet(smsSet2);
}
smsSet.getSms(3).setStoringAfterFailure(true);
smsSet.getSms(5).setStoringAfterFailure(true);
Date curDate = new Date();
int year = curDate.getYear();
smsSet.getSms(1).setStored(true);
smsSet.getSms(1).setValidityPeriod(new Date(year + 1, 1, 1)); // validity period is too far (more then several days)
smsSet.getSms(2).setStored(true);
smsSet.getSms(2).setValidityPeriod(new Date(year - 1, 1, 1));
smsSet.getSms(6).setStored(true);
smsSet.getSms(6).setValidityPeriod(new Date(year - 1, 1, 1));
smsSet.getSms(7).setStored(true);
smsSet.getSms(7).setValidityPeriod(new Date(curDate.getTime() + 20 * 60 * 1000)); // validity period is not far - 20 min
smsSet.getSms(8).setStored(true);
smsSet.getSms(8).setValidityPeriod(new Date(curDate.getTime() + 10 * 60 * 1000)); // validity period is not far - 10 min
sbb.addInitialMessageSet(smsSet);
SmsSetCache.getInstance().addProcessingSmsSet(smsSet.getTargetId(), smsSet, 0);
storeSbb(sbb);
// 02
sbb = initiateSbb(sbb);
loadSbb(sbb);
int cnt = sbb.obtainNextMessagesSendingPool(5, ProcessingType.SMPP);
sbb.registerMessageInSendingPool(0, 100, null);
sbb.registerMessageInSendingPool(1, 101, null);
sbb.registerMessageInSendingPool(2, 102, null);
sbb.registerMessageInSendingPool(3, 103, null);
sbb.registerMessageInSendingPool(4, 104, null);
sbb.endRegisterMessageInSendingPool();
assertEquals(sbb.getCurrentMsgNumValue(), 6);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getTotalUnsentMessageCount(), 19);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 5);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0);
assertEquals(sbb.getMessageInSendingPool(1).getMessageId(), 1);
assertEquals(sbb.getMessageInSendingPool(2).getMessageId(), 3);
assertEquals(sbb.getMessageInSendingPool(3).getMessageId(), 4);
assertEquals(sbb.getMessageInSendingPool(4).getMessageId(), 5);
assertNull(sbb.getMessageInSendingPool(5));
sbb.confirmMessageInSendingPool(100);
sbb.confirmMessageInSendingPool(102);
ArrayList<Sms> lstPermFailured = new ArrayList<Sms>();
ArrayList<Sms> lstTempFailured = new ArrayList<Sms>();
sbb.createFailureLists(lstPermFailured, lstTempFailured, ErrorAction.temporaryFailure, new Date(
curDate.getTime() + 30 * 60 * 1000));
assertEquals(lstTempFailured.size(), 3);
assertEquals(lstPermFailured.size(), 14);
assertEquals(lstTempFailured.get(0).getMessageId(), 1);
assertEquals(lstTempFailured.get(1).getMessageId(), 5);
assertEquals(lstTempFailured.get(2).getMessageId(), 7);
assertEquals(lstPermFailured.get(0).getMessageId(), 4);
assertEquals(lstPermFailured.get(1).getMessageId(), 6);
assertEquals(lstPermFailured.get(2).getMessageId(), 8);
assertEquals(lstPermFailured.get(3).getMessageId(), 9);
assertEquals(lstPermFailured.get(13).getMessageId(), 19);
}
@Test(groups = { "DeliveryCommonSbb" })
public void testFailureLists2() {
if (!this.cassandraDbInited)
return;
SmsSetCache.SMSSET_MSG_PRO_SEGMENT_LIMIT = 100;
DeliveryCommonSbbProxy sbb = initiateSbb(null);
loadSbb(sbb);
SmsSet smsSet = new SmsSet();
for (int i1 = 0; i1 < 5; i1++) {
Sms sms = createSms(i1);
SmsSet smsSet2 = new SmsSet();
smsSet2.addSms(sms);
smsSet.addSmsSet(smsSet2);
}
smsSet.getSms(3).setStored(true);
smsSet.getSms(4).setStored(true);
int year = (new Date()).getYear();
smsSet.getSms(1).setValidityPeriod(new Date(year - 1, 1, 1));
smsSet.getSms(3).setValidityPeriod(new Date(year - 1, 1, 1));
sbb.addInitialMessageSet(smsSet);
SmsSetCache.getInstance().addProcessingSmsSet(smsSet.getTargetId(), smsSet, 0);
storeSbb(sbb);
// 02
sbb = initiateSbb(sbb);
loadSbb(sbb);
Sms sms = sbb.obtainNextMessage(ProcessingType.SMPP);
assertEquals(sms.getMessageId(), 0);
assertEquals(sbb.getCurrentMsgNumValue(), 1);
assertEquals(sbb.getSendingPoolMessageCount(), 1);
assertEquals(sbb.getTotalUnsentMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 1);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0);
assertNull(sbb.getMessageInSendingPool(1));
sms = sbb.obtainNextMessage(ProcessingType.SMPP);
assertEquals(sms.getMessageId(), 2);
assertEquals(sbb.getCurrentMsgNumValue(), 3);
assertEquals(sbb.getSendingPoolMessageCount(), 1);
assertEquals(sbb.getTotalUnsentMessageCount(), 3);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 1);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 2);
assertNull(sbb.getMessageInSendingPool(1));
ArrayList<Sms> lstPermFailured = new ArrayList<Sms>();
ArrayList<Sms> lstTempFailured = new ArrayList<Sms>();
sbb.createFailureLists(lstPermFailured, lstTempFailured, ErrorAction.temporaryFailure, new Date(
(new Date()).getTime() + 1 * 60 * 1000));
assertEquals(lstTempFailured.size(), 1);
assertEquals(lstPermFailured.size(), 2);
assertEquals(lstTempFailured.get(0).getMessageId(), 4);
assertEquals(lstPermFailured.get(0).getMessageId(), 2);
assertEquals(lstPermFailured.get(1).getMessageId(), 3);
}
@Test(groups = { "DeliveryCommonSbb" })
public void testExtraSequensNumbers() {
if (!this.cassandraDbInited)
return;
SmsSetCache.SMSSET_MSG_PRO_SEGMENT_LIMIT = 50;
// 01
DeliveryCommonSbbProxy sbb = initiateSbb(null);
loadSbb(sbb);
SmsSet smsSet = new SmsSet();
for (int i1 = 0; i1 < 5; i1++) {
Sms sms = createSms(i1);
SmsSet smsSet2 = new SmsSet();
smsSet2.addSms(sms);
smsSet.addSmsSet(smsSet2);
}
sbb.addInitialMessageSet(smsSet);
SmsSetCache.getInstance().addProcessingSmsSet(smsSet.getTargetId(), smsSet, 0);
storeSbb(sbb);
assertEquals(sbb.getTotalUnsentMessageCount(), 5L);
assertNull(sbb.getMessageInSendingPool(0));
assertEquals(sbb.getUnsentMessage(0).getMessageId(), 0L);
assertEquals(sbb.getSendingPoolMessageCount(), 0);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
assertFalse(sbb.isMessageConfirmedInSendingPool(0));
storeSbb(sbb);
// 02
sbb = initiateSbb(sbb);
loadSbb(sbb);
int cnt = sbb.obtainNextMessagesSendingPool(5, ProcessingType.SMPP);
int[] ext0 = new int[0];
int[] ext1 = new int[] { 201, 202 };
int[] ext2 = new int[] { 301, 302, 303, 304 };
sbb.registerMessageInSendingPool(0, 100, ext0);
sbb.registerMessageInSendingPool(1, 101, ext1);
sbb.registerMessageInSendingPool(2, 102, null);
sbb.registerMessageInSendingPool(3, 103, null);
sbb.registerMessageInSendingPool(4, 104, ext2);
sbb.endRegisterMessageInSendingPool();
assertEquals(cnt, 5);
assertEquals(sbb.getCurrentMsgNumValue(), 5);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getTotalUnsentMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 5);
assertEquals(sbb.getMessageInSendingPool(0).getMessageId(), 0);
assertEquals(sbb.getMessageInSendingPool(1).getMessageId(), 1);
assertEquals(sbb.getMessageInSendingPool(2).getMessageId(), 2);
assertEquals(sbb.getMessageInSendingPool(3).getMessageId(), 3);
assertEquals(sbb.getMessageInSendingPool(4).getMessageId(), 4);
assertNull(sbb.getMessageInSendingPool(5));
ConfirmMessageInSendingPool confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(404);
assertFalse(confirmMessageInSendingPool.sequenceNumberFound);
assertFalse(confirmMessageInSendingPool.confirmed);
assertNull(confirmMessageInSendingPool.sms);
assertFalse(confirmMessageInSendingPool.splittedMessage);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(101);
assertTrue(confirmMessageInSendingPool.sequenceNumberFound);
assertFalse(confirmMessageInSendingPool.confirmed);
assertNotNull(confirmMessageInSendingPool.sms);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(302);
assertTrue(confirmMessageInSendingPool.sequenceNumberFound);
assertFalse(confirmMessageInSendingPool.confirmed);
assertTrue(confirmMessageInSendingPool.splittedMessage);
assertNotNull(confirmMessageInSendingPool.sms);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(102);
assertTrue(confirmMessageInSendingPool.sequenceNumberFound);
assertTrue(confirmMessageInSendingPool.confirmed);
assertFalse(confirmMessageInSendingPool.splittedMessage);
assertNotNull(confirmMessageInSendingPool.sms);
assertEquals(sbb.getCurrentMsgNumValue(), 5);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getTotalUnsentMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 4);
storeSbb(sbb);
// 03
sbb = initiateSbb(sbb);
loadSbb(sbb);
assertEquals(sbb.getCurrentMsgNumValue(), 5);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getTotalUnsentMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 4);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(100);
assertTrue(confirmMessageInSendingPool.confirmed);
assertTrue(confirmMessageInSendingPool.splittedMessage);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(201);
assertFalse(confirmMessageInSendingPool.confirmed);
assertTrue(confirmMessageInSendingPool.splittedMessage);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(202);
assertTrue(confirmMessageInSendingPool.confirmed);
assertTrue(confirmMessageInSendingPool.splittedMessage);
assertEquals(sbb.getCurrentMsgNumValue(), 5);
assertEquals(sbb.getSendingPoolMessageCount(), 5);
assertEquals(sbb.getTotalUnsentMessageCount(), 5);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 2);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(302);
assertFalse(confirmMessageInSendingPool.sequenceNumberFound);
assertFalse(confirmMessageInSendingPool.confirmed);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(301);
assertTrue(confirmMessageInSendingPool.sequenceNumberFound);
assertFalse(confirmMessageInSendingPool.confirmed);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(303);
assertFalse(confirmMessageInSendingPool.confirmed);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(304);
assertFalse(confirmMessageInSendingPool.confirmed);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(104);
assertTrue(confirmMessageInSendingPool.confirmed);
assertTrue(confirmMessageInSendingPool.splittedMessage);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 1);
confirmMessageInSendingPool = sbb.confirmMessageInSendingPool(103);
assertTrue(confirmMessageInSendingPool.confirmed);
assertEquals(sbb.getUnconfirmedMessageCountInSendingPool(), 0);
sbb.commitSendingPoolMsgCount();
}
private Sms createSms(int num) {
Sms sms = new Sms();
sms.setDbId(UUID.randomUUID());
sms.setMessageId(num);
return sms;
}
private DeliveryCommonSbbProxy initiateSbb(DeliveryCommonSbbProxy orig) {
DeliveryCommonSbbProxy res = new DeliveryCommonSbbProxy(pers);
if (orig != null) {
res.targetIdStored = orig.targetIdStored;
res.currentMsgNumStored = orig.currentMsgNumStored;
res.deliveringIsInitedStored = orig.deliveringIsInitedStored;
res.deliveringIsEndedStored = orig.deliveringIsEndedStored;
res.pendingRequestsListStored = orig.pendingRequestsListStored;
res.sendingPoolMsgCountStored = orig.sendingPoolMsgCountStored;
}
return res;
}
private void loadSbb(DeliveryCommonSbbProxy sbb) {
sbb.sbbLoad();
}
private void storeSbb(DeliveryCommonSbbProxy sbb) {
sbb.sbbStore();
}
public class DeliveryCommonSbbProxy extends DeliveryCommonSbb {
public DeliveryCommonSbbProxy(PersistenceRAInterfaceProxy cassandraSbb) {
super(DeliveryCommonSbbProxy.class.getSimpleName());
persistence = cassandraSbb;
smscPropertiesManagement = SmscPropertiesManagement.getInstance();
logger = new TracerImpl();
}
protected String targetIdStored;
protected long currentMsgNumStored;
protected boolean deliveringIsInitedStored;
protected boolean deliveringIsEndedStored;
protected PendingRequestsList pendingRequestsListStored;
protected int sendingPoolMsgCountStored;
// @Override
// public Tracer getLogger() {
// return tracer;
// }
@Override
public void setTargetId(String targetId) {
this.targetIdStored = targetId;
}
@Override
public String getTargetId() {
return targetIdStored;
}
@Override
public void setCurrentMsgNum(long currentMsgNum) {
this.currentMsgNumStored = currentMsgNum;
}
@Override
public long getCurrentMsgNum() {
return currentMsgNumStored;
}
@Override
public void setDlvIsInited(boolean deliveringIsInited) {
this.deliveringIsInitedStored = deliveringIsInited;
}
@Override
public boolean getDlvIsInited() {
return deliveringIsInitedStored;
}
@Override
public void setDlvIsEnded(boolean deliveringIsEnded) {
this.deliveringIsEndedStored = deliveringIsEnded;
}
@Override
public boolean getDlvIsEnded() {
return deliveringIsEndedStored;
}
@Override
public void setPendingRequestsList(PendingRequestsList pendingRequestsList) {
this.pendingRequestsListStored = pendingRequestsList;
}
@Override
public PendingRequestsList getPendingRequestsList() {
return pendingRequestsListStored;
}
@Override
public void sbbActivate() {
// TODO Auto-generated method stub
}
@Override
public void sbbCreate() throws CreateException {
// TODO Auto-generated method stub
}
@Override
public void sbbExceptionThrown(Exception arg0, Object arg1, ActivityContextInterface arg2) {
// TODO Auto-generated method stub
}
@Override
public void sbbPassivate() {
// TODO Auto-generated method stub
}
@Override
public void sbbPostCreate() throws CreateException {
// TODO Auto-generated method stub
}
@Override
public void sbbRemove() {
// TODO Auto-generated method stub
}
@Override
public void sbbRolledBack(RolledBackContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void setSbbContext(SbbContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void unsetSbbContext() {
// TODO Auto-generated method stub
}
@Override
public TimerID getDeliveryTimerID() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setDeliveryTimerID(TimerID val) {
// TODO Auto-generated method stub
}
@Override
protected void onDeliveryTimeout(SmsSet smsSet, String reason) {
// TODO Auto-generated method stub
}
}
public class TracerImpl implements Tracer {
@Override
public void config(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void config(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void fine(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void fine(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void finer(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void finer(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void finest(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void finest(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public String getParentTracerName() {
// TODO Auto-generated method stub
return null;
}
@Override
public TraceLevel getTraceLevel() throws FacilityException {
// TODO Auto-generated method stub
return null;
}
@Override
public String getTracerName() {
// TODO Auto-generated method stub
return null;
}
@Override
public void info(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void info(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public boolean isConfigEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isFineEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isFinerEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isFinestEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isInfoEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isSevereEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isTraceable(TraceLevel arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isWarningEnabled() throws FacilityException {
// TODO Auto-generated method stub
return false;
}
@Override
public void severe(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void severe(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
@Override
public void trace(TraceLevel arg0, String arg1) throws NullPointerException, IllegalArgumentException,
FacilityException {
// TODO Auto-generated method stub
}
@Override
public void trace(TraceLevel arg0, String arg1, Throwable arg2) throws NullPointerException, IllegalArgumentException,
FacilityException {
// TODO Auto-generated method stub
}
@Override
public void warning(String arg0) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
int i1 = 0;
i1++;
}
@Override
public void warning(String arg0, Throwable arg1) throws NullPointerException, FacilityException {
// TODO Auto-generated method stub
}
}
}