View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2026 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.qulice.maven;
6   
7   import com.qulice.spi.ResourceValidator;
8   import com.qulice.spi.Validator;
9   import java.util.HashSet;
10  import java.util.Set;
11  
12  /**
13   * Mocker of ValidatorsProvider.
14   *
15   * @since 0.4
16   */
17  final class ValidatorsProviderMocker {
18  
19      /**
20       * List of external validators.
21       */
22      private final Set<Validator> external = new HashSet<>();
23  
24      /**
25       * List of external resource validators.
26       */
27      private final transient Set<ResourceValidator> rexternal = new HashSet<>();
28  
29      /**
30       * List of internal validators.
31       */
32      private final Set<MavenValidator> internal = new HashSet<>();
33  
34      /**
35       * With this external validator.
36       *
37       * @param validator The validator
38       * @return This object
39       */
40      ValidatorsProviderMocker withExternal(final Validator validator) {
41          this.external.add(validator);
42          return this;
43      }
44  
45      /**
46       * With this external resource validator.
47       *
48       * @param validator The validator
49       * @return This object
50       */
51      ValidatorsProviderMocker withExternalResource(final ResourceValidator validator) {
52          this.rexternal.add(validator);
53          return this;
54      }
55  
56      /**
57       * With this external validator.
58       *
59       * @param validator The validator
60       * @return This object
61       */
62      ValidatorsProviderMocker withInternal(final MavenValidator validator) {
63          this.internal.add(validator);
64          return this;
65      }
66  
67      /**
68       * Mock it.
69       *
70       * @return The provider
71       */
72      ValidatorsProvider mock() {
73          return new FakeValidatorsProvider(
74              this.internal,
75              this.external,
76              this.rexternal
77          );
78      }
79  }