blob: 1de88052f5363c93c4c68a67d082bed34abd96d5 [file] [log] [blame]
/**
* 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);
}
}