| /** |
| * 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.avro.specific; |
| |
| import org.apache.avro.test.errors.TestError; |
| import org.junit.Assert; |
| import org.junit.Test; |
| |
| /** |
| * Unit test for the SpecificErrorBuilderBase class. |
| */ |
| public class TestSpecificErrorBuilder { |
| @Test |
| public void testSpecificErrorBuilder() { |
| TestError.Builder testErrorBuilder = TestError.newBuilder(). |
| setValue("value").setCause(new NullPointerException()). |
| setMessage$("message$"); |
| |
| // Test has methods |
| Assert.assertTrue(testErrorBuilder.hasValue()); |
| Assert.assertNotNull(testErrorBuilder.getValue()); |
| Assert.assertTrue(testErrorBuilder.hasCause()); |
| Assert.assertNotNull(testErrorBuilder.getCause()); |
| Assert.assertTrue(testErrorBuilder.hasMessage$()); |
| Assert.assertNotNull(testErrorBuilder.getMessage$()); |
| |
| TestError testError = testErrorBuilder.build(); |
| Assert.assertEquals("value", testError.getValue()); |
| Assert.assertEquals("value", testError.getMessage()); |
| Assert.assertEquals("message$", testError.getMessage$()); |
| |
| // Test copy constructor |
| Assert.assertEquals(testErrorBuilder, |
| TestError.newBuilder(testErrorBuilder)); |
| Assert.assertEquals(testErrorBuilder, TestError.newBuilder(testError)); |
| |
| TestError error = new TestError("value", new NullPointerException()); |
| error.setMessage$("message"); |
| Assert.assertEquals(error, |
| TestError.newBuilder().setValue("value"). |
| setCause(new NullPointerException()).setMessage$("message").build()); |
| |
| // Test clear |
| testErrorBuilder.clearValue(); |
| Assert.assertFalse(testErrorBuilder.hasValue()); |
| Assert.assertNull(testErrorBuilder.getValue()); |
| testErrorBuilder.clearCause(); |
| Assert.assertFalse(testErrorBuilder.hasCause()); |
| Assert.assertNull(testErrorBuilder.getCause()); |
| testErrorBuilder.clearMessage$(); |
| Assert.assertFalse(testErrorBuilder.hasMessage$()); |
| Assert.assertNull(testErrorBuilder.getMessage$()); |
| } |
| |
| @Test(expected=org.apache.avro.AvroRuntimeException.class) |
| public void attemptToSetNonNullableFieldToNull() { |
| TestError.newBuilder().setMessage$(null); |
| } |
| } |