package org.dcache.services.info.gathers;
import org.junit.Before;
import org.junit.Test;
import dmg.cells.nucleus.UOID;
import static org.junit.Assert.*;
/**
* Some tests that check the MessageHandlerChain's implementation of
* the MessageMetadataRepository Interface
*/
public class MessageHandlerChainAsMessageMetadataRepositoryTests {
final static long AVAILABLE_TTL = 2;
final static UOID AVAILABLE_ID = new UOID();
MessageMetadataRepository<UOID> _metadataRepo;
@Before
public void setUp()
{
_metadataRepo = new MessageHandlerChain();
_metadataRepo.putMetricTTL( AVAILABLE_ID, AVAILABLE_TTL);
}
@Test( expected=NullPointerException.class)
public void testPutNull() {
_metadataRepo.putMetricTTL( null, 3);
fail( "Unexpected absence of NullPointerException");
}
@Test( expected=IllegalArgumentException.class)
public void testGetNotPreset() {
UOID id = new UOID();
_metadataRepo.getMetricTTL( id);
fail( "Unexpected absence of IllegalArguemtnException");
}
@Test
public void testGetPresent() {
long getTtl = _metadataRepo.getMetricTTL( AVAILABLE_ID);
assertEquals( "getMetricTTL returned value", AVAILABLE_TTL, getTtl);
}
@Test
public void testContainsPresentMessageTTL() {
assertTrue( "checking containsMetricTTL for available message ID", _metadataRepo.containsMetricTTL( AVAILABLE_ID));
}
@Test
public void testContainsNonPresentMessageTTL() {
assertFalse( "checking containsMetricTTL for absent message ID", _metadataRepo.containsMetricTTL( new UOID()));
}
@Test
public void testRemoveAvailableMessage() {
_metadataRepo.remove( AVAILABLE_ID);
assertFalse( "Checking availablity after remove", _metadataRepo.containsMetricTTL( AVAILABLE_ID));
}
@Test( expected=IllegalArgumentException.class)
public void testRemoveNonPresentMessageTTL() {
_metadataRepo.remove( new UOID());
fail( "Unexpected absence of IllegalArgumentException");
}
}