You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by fr...@apache.org on 2016/12/20 10:34:17 UTC

svn commit: r1775252 - /jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/

Author: frm
Date: Tue Dec 20 10:34:17 2016
New Revision: 1775252

URL: http://svn.apache.org/viewvc?rev=1775252&view=rev
Log:
OAK-5350 - Improve code coverage for o.a.j.o.segment.standby.codec

Added:
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobRequestEncoderTest.java   (with props)
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadRequestEncoderTest.java   (with props)
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetReferencesRequestEncoderTest.java   (with props)
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentRequestEncoderTest.java   (with props)
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/MessagesTest.java   (with props)
Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobRequestEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobRequestEncoderTest.java?rev=1775252&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobRequestEncoderTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobRequestEncoderTest.java Tue Dec 20 10:34:17 2016
@@ -0,0 +1,36 @@
+/*
+ * 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.jackrabbit.oak.segment.standby.codec;
+
+import static org.apache.jackrabbit.oak.segment.standby.codec.Messages.newGetBlobRequest;
+import static org.junit.Assert.assertEquals;
+
+import io.netty.channel.embedded.EmbeddedChannel;
+import org.junit.Test;
+
+public class GetBlobRequestEncoderTest {
+
+    @Test
+    public void encodeRequest() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new GetBlobRequestEncoder());
+        channel.writeOutbound(new GetBlobRequest("clientId", "blobId"));
+        String message = (String) channel.readOutbound();
+        assertEquals(newGetBlobRequest("clientId", "blobId"), message);
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobRequestEncoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadRequestEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadRequestEncoderTest.java?rev=1775252&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadRequestEncoderTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadRequestEncoderTest.java Tue Dec 20 10:34:17 2016
@@ -0,0 +1,36 @@
+/*
+ * 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.jackrabbit.oak.segment.standby.codec;
+
+import static org.apache.jackrabbit.oak.segment.standby.codec.Messages.newGetHeadRequest;
+import static org.junit.Assert.assertEquals;
+
+import io.netty.channel.embedded.EmbeddedChannel;
+import org.junit.Test;
+
+public class GetHeadRequestEncoderTest {
+
+    @Test
+    public void encodeRequest() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new GetHeadRequestEncoder());
+        channel.writeOutbound(new GetHeadRequest("clientId"));
+        String message = (String) channel.readOutbound();
+        assertEquals(newGetHeadRequest("clientId"), message);
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadRequestEncoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetReferencesRequestEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetReferencesRequestEncoderTest.java?rev=1775252&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetReferencesRequestEncoderTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetReferencesRequestEncoderTest.java Tue Dec 20 10:34:17 2016
@@ -0,0 +1,36 @@
+/*
+ * 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.jackrabbit.oak.segment.standby.codec;
+
+import static org.apache.jackrabbit.oak.segment.standby.codec.Messages.newGetReferencesRequest;
+import static org.junit.Assert.assertEquals;
+
+import io.netty.channel.embedded.EmbeddedChannel;
+import org.junit.Test;
+
+public class GetReferencesRequestEncoderTest {
+
+    @Test
+    public void encodeRequest() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new GetReferencesRequestEncoder());
+        channel.writeOutbound(new GetReferencesRequest("clientId", "segmentId"));
+        String message = (String) channel.readOutbound();
+        assertEquals(newGetReferencesRequest("clientId", "segmentId"), message);
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetReferencesRequestEncoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentRequestEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentRequestEncoderTest.java?rev=1775252&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentRequestEncoderTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentRequestEncoderTest.java Tue Dec 20 10:34:17 2016
@@ -0,0 +1,36 @@
+/*
+ * 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.jackrabbit.oak.segment.standby.codec;
+
+import static org.apache.jackrabbit.oak.segment.standby.codec.Messages.newGetSegmentRequest;
+import static org.junit.Assert.assertEquals;
+
+import io.netty.channel.embedded.EmbeddedChannel;
+import org.junit.Test;
+
+public class GetSegmentRequestEncoderTest {
+
+    @Test
+    public void encodeRequest() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new GetSegmentRequestEncoder());
+        channel.writeOutbound(new GetSegmentRequest("clientId", "segmentId"));
+        String message = (String) channel.readOutbound();
+        assertEquals(newGetSegmentRequest("clientId", "segmentId"), message);
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentRequestEncoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/MessagesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/MessagesTest.java?rev=1775252&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/MessagesTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/MessagesTest.java Tue Dec 20 10:34:17 2016
@@ -0,0 +1,69 @@
+/*
+ * 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.jackrabbit.oak.segment.standby.codec;
+
+import static org.apache.jackrabbit.oak.segment.standby.codec.Messages.extractClientFrom;
+import static org.apache.jackrabbit.oak.segment.standby.codec.Messages.extractMessageFrom;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Test;
+
+public class MessagesTest {
+
+    @Test
+    public void extractMessageFromPayloadWithoutMagic() throws Exception {
+        assertNull(extractMessageFrom("wrong"));
+    }
+
+    @Test
+    public void extractMessageFromEmptyPayload() throws Exception {
+        assertNull(extractMessageFrom("Standby-CMD@"));
+    }
+
+    @Test
+    public void extractMessageFromPayloadWithClient() throws Exception {
+        assertEquals("message",  extractMessageFrom("Standby-CMD@client:message"));
+    }
+
+    @Test
+    public void extractMessageFromPayloadWithoutClient() throws Exception {
+        assertEquals("message",  extractMessageFrom("Standby-CMD@:message"));
+    }
+
+    @Test
+    public void extractClientFromPayloadWithoutMagic() throws Exception {
+        assertNull(extractClientFrom("wrong"));
+    }
+
+    @Test
+    public void extractClientFromEmptyPayload() throws Exception {
+        assertNull(extractClientFrom("Standby-CMD@"));
+    }
+
+    @Test
+    public void extractClientFromPayloadWithClient() throws Exception {
+        assertEquals("client",  extractClientFrom("Standby-CMD@client:message"));
+    }
+
+    @Test
+    public void extractClientFromPayloadWithoutClient() throws Exception {
+        assertEquals("", extractClientFrom("Standby-CMD@:message"));
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/MessagesTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java?rev=1775252&r1=1775251&r2=1775252&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java Tue Dec 20 10:34:17 2016
@@ -67,4 +67,11 @@ public class RequestDecoderTest {
         assertNull(channel.readInbound());
     }
 
+    @Test
+    public void shouldIgnoreInvalidMessages() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new RequestDecoder());
+        channel.writeInbound("wrong");
+        assertEquals("wrong", channel.readInbound());
+    }
+
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java?rev=1775252&r1=1775251&r2=1775252&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java Tue Dec 20 10:34:17 2016
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import java.util.Collections;
 import java.util.UUID;
 
 import com.google.common.base.Charsets;
@@ -143,6 +144,20 @@ public class ResponseDecoderTest {
     }
 
     @Test
+    public void shouldDropGetReferencesResponsesWithoutDelimiter() throws Exception {
+        byte[] data = "a".getBytes(Charsets.UTF_8);
+
+        ByteBuf buf = Unpooled.buffer();
+        buf.writeInt(data.length + 1);
+        buf.writeByte(Messages.HEADER_REFERENCES);
+        buf.writeBytes(data);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(buf);
+        assertNull(channel.readInbound());
+    }
+
+    @Test
     public void shouldDecodeValidSingleElementGetReferencesResponses() throws Exception {
         byte[] data = "a:b".getBytes(Charsets.UTF_8);