/*
* Copyright 2012 LinkedIn, Inc
*
* 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.linkedin.parseq.trace;
import org.testng.annotations.Test;
import com.linkedin.parseq.internal.IdGenerator;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.fail;
/**
* @author Chris Pettitt (cpettitt@linkedin.com)
* @author Jaroslaw Odzga (jodzga@linkedin.com)
*/
public class TestShallowTraceBuilder {
@Test
public void testEarlyFinishWithValue() {
final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId());
builder.setName("test");
builder.setResultType(ResultType.EARLY_FINISH);
builder.setValue("non-null-value");
try {
builder.build();
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
// Expected case
}
}
@Test
public void testUninishedWithValue() {
final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId());
builder.setName("test");
builder.setResultType(ResultType.UNFINISHED);
builder.setValue("non-null-value");
try {
builder.build();
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
// Expected case
}
}
@Test
public void testCopyconstructor() {
final ShallowTraceBuilder builder = new ShallowTraceBuilder(IdGenerator.getNextId());
builder.setName("test");
builder.setResultType(ResultType.SUCCESS);
builder.setValue("value");
builder.setStartNanos(123L);
builder.setPendingNanos(234L);
builder.setEndNanos(345L);
builder.addAttribute("test", "value");
final ShallowTraceBuilder copied = new ShallowTraceBuilder(builder.build());
assertEquals(builder.build(), copied.build());
}
@Test
public void testEquals() {
final ShallowTraceBuilder builder = new ShallowTraceBuilder(100L);
builder.setName("test");
builder.setResultType(ResultType.SUCCESS);
builder.setValue("value");
builder.setStartNanos(123L);
builder.setPendingNanos(234L);
builder.setEndNanos(345L);
ShallowTraceBuilder builderCopy = new ShallowTraceBuilder(100L);
builderCopy.setName("test");
builderCopy.setResultType(ResultType.SUCCESS);
builderCopy.setValue("value");
builderCopy.setStartNanos(123L);
builderCopy.setPendingNanos(234L);
builderCopy.setEndNanos(345L);
assertEquals(builder.build(), builderCopy.build());
builderCopy = new ShallowTraceBuilder(100L);
builderCopy.setName("no-test");
builderCopy.setResultType(ResultType.SUCCESS);
builderCopy.setValue("value");
builderCopy.setStartNanos(123L);
builderCopy.setPendingNanos(234L);
builderCopy.setEndNanos(345L);
assertFalse(builder.build().equals(builderCopy.build()));
builderCopy = new ShallowTraceBuilder(100L);
builderCopy.setName("test");
builderCopy.setResultType(ResultType.SUCCESS);
builderCopy.setStartNanos(123L);
builderCopy.setPendingNanos(234L);
builderCopy.setEndNanos(345L);
assertFalse(builder.build().equals(builderCopy.build()));
builderCopy = new ShallowTraceBuilder(100L);
builderCopy.setName("no-test");
builderCopy.setResultType(ResultType.SUCCESS);
builderCopy.setValue("value");
builderCopy.setStartNanos(123L);
builderCopy.setPendingNanos(234L);
builderCopy.setEndNanos(345L);
builderCopy.setResultType(ResultType.ERROR);
assertFalse(builder.build().equals(builderCopy.build()));
}
}