diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2009-05-16 18:01:50 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2009-05-16 18:01:50 +0000 | 
| commit | 2522b0f007a32ffe25cb5b5ffa07a0fb50a9d500 (patch) | |
| tree | 8b337fb2ccfd78ff2e462482611f959bb168c67a /src/test/java/com/amazon/carbonado/gen | |
| parent | 19c575e3730a5742ea6eff488d2d830572d41620 (diff) | |
Fix bug when overriding final void method. Fix bug in generating writeTo/readFrom methods which throw SupportException.
Diffstat (limited to 'src/test/java/com/amazon/carbonado/gen')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/gen/TestFinalMethods.java | 103 | ||||
| -rw-r--r-- | src/test/java/com/amazon/carbonado/gen/TestNotSerializable.java | 87 | 
2 files changed, 190 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/gen/TestFinalMethods.java b/src/test/java/com/amazon/carbonado/gen/TestFinalMethods.java new file mode 100644 index 0000000..fa4fdd4 --- /dev/null +++ b/src/test/java/com/amazon/carbonado/gen/TestFinalMethods.java @@ -0,0 +1,103 @@ +/*
 + * Copyright 2009 Amazon Technologies, Inc. or its affiliates.
 + * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks
 + * of Amazon Technologies, Inc. or its affiliates.  All rights reserved.
 + *
 + * Licensed 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 com.amazon.carbonado.gen;
 +
 +import java.io.*;
 +
 +import junit.framework.TestCase;
 +import junit.framework.TestSuite;
 +
 +import com.amazon.carbonado.*;
 +
 +import com.amazon.carbonado.repo.toy.ToyRepository;
 +
 +/**
 + * 
 + *
 + * @author Brian S O'Neill
 + */
 +public class TestFinalMethods extends TestCase {
 +    public static void main(String[] args) {
 +        junit.textui.TestRunner.run(suite());
 +    }
 +
 +    public static TestSuite suite() {
 +        return new TestSuite(TestFinalMethods.class);
 +    }
 +
 +    private Repository mRepository;
 +
 +    public TestFinalMethods(String name) {
 +        super(name);
 +    }
 +
 +    protected void setUp() {
 +        mRepository = new ToyRepository();
 +    }
 +
 +    protected void tearDown() {
 +        mRepository.close();
 +        mRepository = null;
 +    }
 +
 +    public void testLoad() throws Exception {
 +        Storage<Record> g = mRepository.storageFor(Record.class);
 +        Record rec = g.prepare();
 +        rec.setId(1);
 +        rec.insert();
 +        // Works because override was not declared final.
 +        rec.load();
 +    }
 +
 +    public void testToString() throws Exception {
 +        Storage<Record> g = mRepository.storageFor(Record.class);
 +        Record rec = g.prepare();
 +        assertEquals("hello", rec.toString());
 +    }
 +
 +    public void testWriteTo() throws Exception {
 +        Storage<Record> g = mRepository.storageFor(Record.class);
 +        Record rec = g.prepare();
 +        ByteArrayOutputStream out = new ByteArrayOutputStream();
 +        rec.writeTo(out);
 +        byte[] bytes = out.toByteArray();
 +        assertEquals("hello", new String(bytes));
 +    }
 +
 +    @PrimaryKey("id")
 +    public static abstract class Record implements Storable {
 +        public abstract int getId();
 +        public abstract void setId(int id);
 +
 +        @Override
 +        public void load() throws FetchException {
 +            throw null;
 +        }
 +
 +        @Override
 +        public final void writeTo(OutputStream out) throws IOException {
 +            out.write("hello".getBytes());
 +        }
 +
 +        @Override
 +        public final String toString() {
 +            return "hello";
 +        }
 +    }
 +}
 diff --git a/src/test/java/com/amazon/carbonado/gen/TestNotSerializable.java b/src/test/java/com/amazon/carbonado/gen/TestNotSerializable.java new file mode 100644 index 0000000..d9e162f --- /dev/null +++ b/src/test/java/com/amazon/carbonado/gen/TestNotSerializable.java @@ -0,0 +1,87 @@ +/*
 + * Copyright 2009 Amazon Technologies, Inc. or its affiliates.
 + * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks
 + * of Amazon Technologies, Inc. or its affiliates.  All rights reserved.
 + *
 + * Licensed 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 com.amazon.carbonado.gen;
 +
 +import java.io.*;
 +
 +import junit.framework.TestCase;
 +import junit.framework.TestSuite;
 +
 +import com.amazon.carbonado.*;
 +
 +import com.amazon.carbonado.repo.toy.ToyRepository;
 +
 +/**
 + * 
 + *
 + * @author Brian S O'Neill
 + */
 +public class TestNotSerializable extends TestCase {
 +    public static void main(String[] args) {
 +        junit.textui.TestRunner.run(suite());
 +    }
 +
 +    public static TestSuite suite() {
 +        return new TestSuite(TestNotSerializable.class);
 +    }
 +
 +    private Repository mRepository;
 +
 +    public TestNotSerializable(String name) {
 +        super(name);
 +    }
 +
 +    protected void setUp() {
 +        mRepository = new ToyRepository();
 +    }
 +
 +    protected void tearDown() {
 +        mRepository.close();
 +        mRepository = null;
 +    }
 +
 +    public void testWriteTo() throws Exception {
 +        Storage<Record> g = mRepository.storageFor(Record.class);
 +        Record rec = g.prepare();
 +        try {
 +            rec.writeTo(new ByteArrayOutputStream());
 +            fail();
 +        } catch (SupportException e) {
 +        }
 +    }
 +
 +    public void testReadFrom() throws Exception {
 +        Storage<Record> g = mRepository.storageFor(Record.class);
 +        Record rec = g.prepare();
 +        try {
 +            rec.readFrom(new ByteArrayInputStream(new byte[0]));
 +            fail();
 +        } catch (SupportException e) {
 +        }
 +    }
 +
 +    @PrimaryKey("id")
 +    public static abstract class Record implements Storable {
 +        public abstract int getId();
 +        public abstract void setId(int id);
 +
 +        public abstract InputStream getInput();
 +        public abstract void setInput(InputStream in);
 +    }
 +}
  | 
