/* * Copyright 2013 Google Inc. 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.google.errorprone.bugpatterns; import com.google.common.base.Predicate; import com.google.errorprone.CompilationTestHelper; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * @author flx@google.com (Felix Berger) */ @RunWith(JUnit4.class) public class ProtoFieldNullComparisonTest { private CompilationTestHelper compilationHelper; @Before public void setUp() throws Exception { compilationHelper = CompilationTestHelper .newInstance(ProtoFieldNullComparison.class, getClass()) .addSourceFile("proto/ProtoTest.java"); } @Test public void testPositiveCase() throws Exception { compilationHelper.addSourceFile("ProtoFieldNullComparisonPositiveCases.java").doTest(); } @Test public void testNegativeCase() throws Exception { compilationHelper.addSourceFile("ProtoFieldNullComparisonNegativeCases.java").doTest(); } @Test public void testProto3() { CompilationTestHelper.newInstance(ProtoFieldNullComparison.class, getClass()) .addSourceFile("proto/Proto3Test.java") .addSourceLines( "TestProto3.java", "import com.google.errorprone.bugpatterns.proto.Proto3Test.TestProto3Message;", "public class TestProto3 {", " public boolean doIt(TestProto3Message proto3Message) {", " // BUG: Diagnostic matches: NO_FIX", " return proto3Message.getMyString() == null;", " }", "}") .expectErrorMessage( "NO_FIX", new Predicate<String>() { @Override public boolean apply(String input) { return !input.contains("hasMyString()"); } }) .doTest(); } }