http://git-wip-us.apache.org/repos/asf/geode/blob/d1ec508e/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/CacheServerUtils.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/CacheServerUtils.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/CacheServerUtils.java new file mode 100644 index 0000000..8cd7622 --- /dev/null +++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/CacheServerUtils.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.tier.sockets; + +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.server.CacheServer; +import org.apache.geode.internal.cache.CacheServerImpl; + +import java.util.List; +import java.util.Set; + +/** + * Provides tests a way to access CacheServer, AcceptorImpl and ServerConnection + */ +public class CacheServerUtils { + + /** + * Returns single CacheServer for the specified Cache instance + */ + public static CacheServer getCacheServer(final Cache cache) { + List<CacheServer> cacheServers = cache.getCacheServers(); + CacheServer cacheServer = cacheServers.get(0); + return cacheServer; + } + + /** + * Returns AcceptorImpl for the specified CacheServer instance + */ + public static AcceptorImpl getAcceptorImpl(final CacheServer cacheServer) { + AcceptorImpl acceptor = ((CacheServerImpl) cacheServer).getAcceptor(); + return acceptor; + } + + /** + * Returns single ServerConnection for the specified CacheServer instance + */ + public static ServerConnection getServerConnection(final CacheServer cacheServer) { + AcceptorImpl acceptor = ((CacheServerImpl) cacheServer).getAcceptor(); + Set<ServerConnection> serverConnections = acceptor.getAllServerConnections(); + ServerConnection serverConnection = serverConnections.iterator().next(); // null + return serverConnection; + } +}
http://git-wip-us.apache.org/repos/asf/geode/blob/d1ec508e/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/MessageJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/MessageJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/MessageJUnitTest.java index 86fcbce..b2d903c 100755 --- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/MessageJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/MessageJUnitTest.java @@ -32,53 +32,49 @@ import org.apache.geode.test.junit.categories.UnitTest; public class MessageJUnitTest { private Message message; - private Socket mockSocket; - private MessageStats mockStats; - private ByteBuffer msgBuffer; - private ServerConnection mockServerConnection; @Before public void setUp() throws Exception { - mockSocket = mock(Socket.class); - message = new Message(2, Version.CURRENT); - assertEquals(2, message.getNumberOfParts()); - mockStats = mock(MessageStats.class); - msgBuffer = ByteBuffer.allocate(1000); - mockServerConnection = mock(ServerConnection.class); - message.setComms(mockServerConnection, mockSocket, msgBuffer, mockStats); + Socket mockSocket = mock(Socket.class); + this.message = new Message(2, Version.CURRENT); + assertEquals(2, this.message.getNumberOfParts()); + MessageStats mockStats = mock(MessageStats.class); + ByteBuffer msgBuffer = ByteBuffer.allocate(1000); + ServerConnection mockServerConnection = mock(ServerConnection.class); + this.message.setComms(mockServerConnection, mockSocket, msgBuffer, mockStats); } @Test public void clearDoesNotThrowNPE() throws Exception { // unsetComms clears the message's ByteBuffer, which was causing an NPE during shutdown // when clear() was invoked - message.unsetComms(); - message.clear(); + this.message.unsetComms(); + this.message.clear(); } @Test public void numberOfPartsIsAdjusted() { - int numParts = message.getNumberOfParts(); - message.setNumberOfParts(2 * numParts + 1); - assertEquals(2 * numParts + 1, message.getNumberOfParts()); - message.addBytesPart(new byte[1]); - message.addIntPart(2); - message.addLongPart(3); - message.addObjPart("4"); - message.addStringPart("5"); - assertEquals(5, message.getNextPartNumber()); + int numParts = this.message.getNumberOfParts(); + this.message.setNumberOfParts(2 * numParts + 1); + assertEquals(2 * numParts + 1, this.message.getNumberOfParts()); + this.message.addBytesPart(new byte[1]); + this.message.addIntPart(2); + this.message.addLongPart(3); + this.message.addObjPart("4"); + this.message.addStringPart("5"); + assertEquals(5, this.message.getNextPartNumber()); } @Test public void messageLongerThanMaxIntIsRejected() throws Exception { - Part[] parts = new Part[2]; Part mockPart1 = mock(Part.class); when(mockPart1.getLength()).thenReturn(Integer.MAX_VALUE / 2); + Part[] parts = new Part[2]; parts[0] = mockPart1; parts[1] = mockPart1; - message.setParts(parts); + this.message.setParts(parts); try { - message.send(); + this.message.send(); fail("expected an exception but none was thrown"); } catch (MessageTooLargeException e) { assertTrue(e.getMessage().contains("exceeds maximum integer value")); @@ -87,14 +83,14 @@ public class MessageJUnitTest { @Test public void maxMessageSizeIsRespected() throws Exception { - Part[] parts = new Part[2]; Part mockPart1 = mock(Part.class); - when(mockPart1.getLength()).thenReturn(Message.MAX_MESSAGE_SIZE / 2); + when(mockPart1.getLength()).thenReturn(Message.DEFAULT_MAX_MESSAGE_SIZE / 2); + Part[] parts = new Part[2]; parts[0] = mockPart1; parts[1] = mockPart1; - message.setParts(parts); + this.message.setParts(parts); try { - message.send(); + this.message.send(); fail("expected an exception but none was thrown"); } catch (MessageTooLargeException e) { assertFalse(e.getMessage().contains("exceeds maximum integer value")); @@ -103,21 +99,17 @@ public class MessageJUnitTest { /** * geode-1468: Message should clear the chunks in its Parts when performing cleanup. - * - * @throws Exception */ @Test public void streamBuffersAreClearedDuringCleanup() throws Exception { - Part[] parts = new Part[2]; Part mockPart1 = mock(Part.class); when(mockPart1.getLength()).thenReturn(100); + Part[] parts = new Part[2]; parts[0] = mockPart1; parts[1] = mockPart1; - message.setParts(parts); - message.clearParts(); + this.message.setParts(parts); + this.message.clearParts(); verify(mockPart1, times(2)).clear(); } - // TODO many more tests are needed - } http://git-wip-us.apache.org/repos/asf/geode/blob/d1ec508e/geode-core/src/test/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java b/geode-core/src/test/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java index 5a679bb..110d649 100644 --- a/geode-core/src/test/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java +++ b/geode-core/src/test/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java @@ -600,11 +600,11 @@ public abstract class JUnit4DistributedTestCase implements DistributedTestFixtur RegionTestCase.preSnapshotRegion = null; SocketCreator.resetHostNameCache(); SocketCreator.resolve_dns = true; - Message.MAX_MESSAGE_SIZE = Message.DEFAULT_MAX_MESSAGE_SIZE; // clear system properties -- keep alphabetized System.clearProperty(DistributionConfig.GEMFIRE_PREFIX + "log-level"); System.clearProperty("jgroups.resolve_dns"); + System.clearProperty(Message.MAX_MESSAGE_SIZE_PROPERTY); if (InternalDistributedSystem.systemAttemptingReconnect != null) { InternalDistributedSystem.systemAttemptingReconnect.stopReconnecting();