package org.limewire.promotion.containers;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import junit.framework.Test;
import org.limewire.util.BaseTestCase;
public class MultiMessageContainerTest extends BaseTestCase {
public MultiMessageContainerTest(String name) {
super(name);
}
public static Test suite() {
return buildTestSuite(MultiMessageContainerTest.class);
}
public void testEncodeDecodeCycle() throws InterruptedException {
MultiMessageContainer message = new MultiMessageContainer();
PromotionMessageContainer promoMessage1 = getPromoMessage("promo1");
PromotionMessageContainer promoMessage2 = getPromoMessage("promo2");
List<MessageContainer> list = new ArrayList<MessageContainer>();
list.add(promoMessage1);
list.add(promoMessage2);
message.setWrappedMessages(list);
List<MessageContainer> list2 = message.getWrappedMessages();
assertEquals(list.size(), list2.size());
PromotionMessageContainer decodedMessage1 = (PromotionMessageContainer) list2.get(0);
PromotionMessageContainer decodedMessage2 = (PromotionMessageContainer) list2.get(1);
assertEquals(promoMessage1.getDescription(), decodedMessage1.getDescription());
assertEquals(promoMessage2.getDescription(), decodedMessage2.getDescription());
}
public void testEmptyCycle() {
MultiMessageContainer message = new MultiMessageContainer();
message.setWrappedMessages(new ArrayList<MessageContainer>());
List<MessageContainer> list = message.getWrappedMessages();
assertEquals(0, list.size());
}
private PromotionMessageContainer getPromoMessage(String fillerString) {
PromotionMessageContainer message = new PromotionMessageContainer();
message.setUniqueID(System.currentTimeMillis());
message.setOptions(new PromotionMessageContainer.PromotionOptions());
message.setDescription(fillerString);
message.setKeywords(fillerString);
message.setURL(fillerString);
try {
TimeUnit.MILLISECONDS.sleep(1);
} catch (InterruptedException ignored) {
}
return message;
}
}