View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2026 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.qulice.pmd;
6   
7   import org.hamcrest.Matchers;
8   import org.junit.jupiter.api.Test;
9   
10  /**
11   * Test case for {@link PmdValidator}'s handling of the
12   * {@code UseDiamondOperator} rule.
13   *
14   * @since 1.0
15   */
16  final class PmdUseDiamondOperatorTest {
17  
18      @Test
19      void forbidsExplicitTypeArgumentsThatDiamondCanReplace() throws Exception {
20          new PmdAssert(
21              "UseDiamondOperator.java",
22              Matchers.is(false),
23              Matchers.containsString("(UseDiamondOperator)")
24          ).assertOk();
25      }
26  
27      @Test
28      void allowsExplicitTypeArgumentsRequiredForInference() throws Exception {
29          new PmdAssert(
30              "UseDiamondOperatorInference.java",
31              Matchers.any(Boolean.class),
32              Matchers.not(
33                  Matchers.containsString("(UseDiamondOperator)")
34              )
35          ).assertOk();
36      }
37  
38      @Test
39      void allowsExplicitTypeArgumentsOnAnonymousClass() throws Exception {
40          new PmdAssert(
41              "UseDiamondOperatorAnonymous.java",
42              Matchers.any(Boolean.class),
43              Matchers.not(
44                  Matchers.containsString("(UseDiamondOperator)")
45              )
46          ).assertOk();
47      }
48  }