summaryrefslogtreecommitdiff
path: root/security/src/test/impl/java/org/apache/harmony/security/tests/asn1/der/SequenceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'security/src/test/impl/java/org/apache/harmony/security/tests/asn1/der/SequenceTest.java')
-rw-r--r--security/src/test/impl/java/org/apache/harmony/security/tests/asn1/der/SequenceTest.java273
1 files changed, 0 insertions, 273 deletions
diff --git a/security/src/test/impl/java/org/apache/harmony/security/tests/asn1/der/SequenceTest.java b/security/src/test/impl/java/org/apache/harmony/security/tests/asn1/der/SequenceTest.java
deleted file mode 100644
index cae8995..0000000
--- a/security/src/test/impl/java/org/apache/harmony/security/tests/asn1/der/SequenceTest.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * @author Stepan M. Mishura
- */
-
-package org.apache.harmony.security.tests.asn1.der;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.harmony.security.asn1.ASN1Boolean;
-import org.apache.harmony.security.asn1.ASN1Exception;
-import org.apache.harmony.security.asn1.ASN1Integer;
-import org.apache.harmony.security.asn1.ASN1Sequence;
-import org.apache.harmony.security.asn1.ASN1SequenceOf;
-import org.apache.harmony.security.asn1.ASN1Type;
-import org.apache.harmony.security.asn1.BerInputStream;
-import org.apache.harmony.security.asn1.DerInputStream;
-import org.apache.harmony.security.asn1.DerOutputStream;
-
-import junit.framework.TestCase;
-
-
-/**
- * ASN.1 DER test for Sequence type
- *
- * @see http://asn1.elibel.tm.fr/en/standards/index.htm
- */
-
-public class SequenceTest extends TestCase {
-
- private static ASN1SequenceOf sequenceOf = new ASN1SequenceOf(ASN1Boolean
- .getInstance());
-
- private static ArrayList defaultList;
-
- private static ASN1Sequence sequence;
-
- private static Object[][] testcases;
-
- protected void setUp() throws Exception {
- super.setUp();
-
- //
- // sequence ::= SEQUENCE {
- // boolean BOOLEAN, DEFAULT true
- // list SEQUENCE OF BOOLEAN, DEFAULT list(false)
- // }
- //
-
- defaultList = new ArrayList();
- defaultList.add(Boolean.FALSE);
-
- sequence = new ASN1Sequence(new ASN1Type[] { ASN1Boolean.getInstance(),
- sequenceOf }) {
- {
- setDefault(Boolean.TRUE, 0);
- setDefault(defaultList, 1);
- }
-
- protected Object getDecodedObject(BerInputStream in)
- throws IOException {
- Object[] values = (Object[]) in.content;
- return new AppClass((Boolean) values[0], (List) values[1]);
- }
-
- protected void getValues(Object object, Object[] values) {
- AppClass obj = (AppClass) object;
-
- values[0] = obj.ok;
- values[1] = obj.list;
- }
- };
-
- //
- // Test Cases
- //
-
- testcases = new Object[][] {
- // format: object to encode / byte array
-
- // sequence : all values are default
- { new AppClass(Boolean.TRUE, defaultList),
- new byte[] { 0x30, 0x00 } },
-
- // sequence : true, default
- { new AppClass(Boolean.FALSE, defaultList),
- new byte[] { 0x30, 0x03, 0x01, 0x01, 0x00 } },
-
- // sequence = default, empty sequence
- { new AppClass(Boolean.TRUE, new ArrayList()),
- new byte[] { 0x30, 0x02, 0x30, 0x00 } },
-
- // sequence = false, empty sequence
- { new AppClass(Boolean.FALSE, new ArrayList()),
- new byte[] { 0x30, 0x05, 0x01, 0x01, 0x00, 0x30, 0x00 } },
-
- //TODO add testcase for another ASN.1 type`
-
- };
- }
-
- //
- // Application class
- //
-
- public static class AppClass {
-
- public Boolean ok;
-
- public List list;
-
- public AppClass(Boolean ok, List list) {
- this.ok = ok;
- this.list = list;
- }
-
- public boolean equals(Object o) {
- if (o instanceof AppClass) {
- AppClass obj = (AppClass) o;
- return ok.equals(obj.ok) && list.equals(obj.list);
- }
- return false;
- }
- }
-
- public void testDecode_Valid() throws IOException {
-
- for (int i = 0; i < testcases.length; i++) {
- try {
- DerInputStream in = new DerInputStream((byte[]) testcases[i][1]);
- assertEquals("Test case: " + i, testcases[i][0], sequence
- .decode(in));
- } catch (ASN1Exception e) {
- fail("Test case: " + i + "\n" + e.getMessage());
- }
- }
- }
-
- //FIXME need testcase for decoding invalid encodings
-
- public void testEncode() throws IOException {
-
- for (int i = 0; i < testcases.length; i++) {
- DerOutputStream out = new DerOutputStream(sequence, testcases[i][0]);
- assertTrue("Test case: " + i, Arrays.equals(
- (byte[]) testcases[i][1], out.encoded));
- }
- }
-
- public void testVerify() throws IOException {
-
- ASN1Sequence seqVerify = new ASN1Sequence(new ASN1Type[] {
- ASN1Boolean.getInstance(), sequenceOf }) {
- {
- setDefault(Boolean.TRUE, 0);
- setDefault(defaultList, 1);
- }
-
- protected Object getDecodedObject(BerInputStream in)
- throws IOException {
- throw new IOException(
- "Method getDecodedObject MUST not be invoked");
- }
- };
-
- for (int i = 0; i < testcases.length; i++) {
- DerInputStream in = new DerInputStream((byte[]) testcases[i][1]);
- in.setVerify();
- seqVerify.decode(in);
- }
- }
-
- /**
- * Tests encoding default fields
- */
- public void testEncodeDefault() throws IOException {
-
- //
- // Boolean as default
- //
- ASN1Sequence s = new ASN1Sequence(new ASN1Type[] { ASN1Boolean
- .getInstance() }) {
- {
- setDefault(Boolean.TRUE, 0);
- }
-
- protected void getValues(Object object, Object[] values) {
- values = (Object[]) object;
- }
- };
-
- byte[] expectedArray = new byte[] { 0x30, 0x00 };
-
- byte[] encoded = s.encode(new Object[] { Boolean.TRUE });
- assertTrue("Encoded boolean:", Arrays.equals(expectedArray, encoded));
-
- //
- // Integer as default
- //
- s = new ASN1Sequence(new ASN1Type[] { ASN1Integer.getInstance() }) {
- {
- setDefault(new byte[] { 0x01 }, 0);
- }
-
- protected void getValues(Object object, Object[] values) {
- values = (Object[]) object;
- }
- };
-
- encoded = s.encode(new Object[] { new byte[] { 0x01 } });
- assertTrue("Encoded integer:", Arrays.equals(expectedArray, encoded));
- }
-
- /**
- * Tests encoding optional fields
- */
- public void testEncodeOptional() throws IOException {
-
- //
- // Test not optional
- //
- ASN1Sequence s = new ASN1Sequence(new ASN1Type[] { ASN1Boolean
- .getInstance() }) {
-
- protected void getValues(Object object, Object[] values) {
- values[0] = ((Object[]) object)[0];
- }
- };
-
- try {
- s.encode(new Object[] { null });
- fail("No expected RuntimeException");
- } catch (RuntimeException e) {
- }
-
- //
- // Test optional
- //
- s = new ASN1Sequence(new ASN1Type[] { ASN1Boolean.getInstance() }) {
- {
- setOptional(0);
- }
-
- protected void getValues(Object object, Object[] values) {
- values[0] = ((Object[]) object)[0];
- }
- };
-
- byte[] expectedArray = new byte[] { 0x30, 0x00 };
-
- byte[] encoded = s.encode(new Object[] { null });
- assertTrue("Encoded boolean:", Arrays.equals(expectedArray, encoded));
- }
-}