001    package org.apache.jcs.auxiliary.remote.util;
002    
003    import java.io.Serializable;
004    import java.util.Collections;
005    import java.util.Set;
006    
007    import junit.framework.TestCase;
008    
009    import org.apache.jcs.auxiliary.remote.value.RemoteCacheRequest;
010    import org.apache.jcs.auxiliary.remote.value.RemoteRequestType;
011    import org.apache.jcs.engine.CacheElement;
012    
013    /** Unit tests for the request creator. */
014    public class RemoteCacheRequestFactoryUnitTest
015        extends TestCase
016    {
017        /** Simple test */
018        public void testCreateGetRequest_Normal()
019        {
020            // SETUP
021            String cacheName = "test";
022            Serializable key = "key";
023            long requesterId = 2;
024    
025            // DO WORK
026            RemoteCacheRequest<Serializable, Serializable> result =
027                RemoteCacheRequestFactory.createGetRequest( cacheName, key, requesterId );
028    
029            // VERIFY
030            assertNotNull( "Should have a result", result );
031            assertEquals( "Wrong cacheName", cacheName, result.getCacheName() );
032            assertEquals( "Wrong type", RemoteRequestType.GET, result.getRequestType() );
033        }
034    
035        /** Simple test */
036        public void testCreateGetMatchingRequest_Normal()
037        {
038            // SETUP
039            String cacheName = "test";
040            String pattern = "pattern";
041            long requesterId = 2;
042    
043            // DO WORK
044            RemoteCacheRequest<Serializable, Serializable> result =
045                RemoteCacheRequestFactory.createGetMatchingRequest( cacheName, pattern, requesterId );
046    
047            // VERIFY
048            assertNotNull( "Should have a result", result );
049            assertEquals( "Wrong cacheName", cacheName, result.getCacheName() );
050            assertEquals( "Wrong type", RemoteRequestType.GET_MATCHING, result.getRequestType() );
051        }
052    
053        /** Simple test */
054        public void testCreateGetMultipleRequest_Normal()
055        {
056            // SETUP
057            String cacheName = "test";
058            Set<Serializable> keys = Collections.emptySet();
059            long requesterId = 2;
060    
061            // DO WORK
062            RemoteCacheRequest<Serializable, Serializable> result =
063                RemoteCacheRequestFactory.createGetMultipleRequest( cacheName, keys, requesterId );
064    
065            // VERIFY
066            assertNotNull( "Should have a result", result );
067            assertEquals( "Wrong cacheName", cacheName, result.getCacheName() );
068            assertEquals( "Wrong type", RemoteRequestType.GET_MULTIPLE, result.getRequestType() );
069        }
070    
071        /** Simple test */
072        public void testCreateRemoveRequest_Normal()
073        {
074            // SETUP
075            String cacheName = "test";
076            Serializable key = "key";
077            long requesterId = 2;
078    
079            // DO WORK
080            RemoteCacheRequest<Serializable, Serializable> result = RemoteCacheRequestFactory
081                .createRemoveRequest( cacheName, key, requesterId );
082    
083            // VERIFY
084            assertNotNull( "Should have a result", result );
085            assertEquals( "Wrong cacheName", cacheName, result.getCacheName() );
086            assertEquals( "Wrong type", RemoteRequestType.REMOVE, result.getRequestType() );
087        }
088    
089        /** Simple test */
090        public void testCreateRemoveAllRequest_Normal()
091        {
092            // SETUP
093            String cacheName = "test";
094            long requesterId = 2;
095    
096            // DO WORK
097            RemoteCacheRequest<Serializable, Serializable> result =
098                RemoteCacheRequestFactory.createRemoveAllRequest( cacheName, requesterId );
099    
100            // VERIFY
101            assertNotNull( "Should have a result", result );
102            assertEquals( "Wrong cacheName", cacheName, result.getCacheName() );
103            assertEquals( "Wrong type", RemoteRequestType.REMOVE_ALL, result.getRequestType() );
104        }
105    
106        /** Simple test */
107        public void testCreateUpdateRequest_Normal()
108        {
109            // SETUP
110            String cacheName = "test";
111            Serializable key = "key";
112            long requesterId = 2;
113    
114            CacheElement<Serializable, Serializable> element =
115                new CacheElement<Serializable, Serializable>( cacheName, key, null );
116    
117            // DO WORK
118            RemoteCacheRequest<Serializable, Serializable> result =
119                RemoteCacheRequestFactory.createUpdateRequest( element, requesterId );
120    
121            // VERIFY
122            assertNotNull( "Should have a result", result );
123            assertEquals( "Wrong cacheName", cacheName, result.getCacheName() );
124            assertEquals( "Wrong type", RemoteRequestType.UPDATE, result.getRequestType() );
125        }
126    }