View Javadoc
1   /*
2    * Copyright (c) 2006 JMockit developers
3    * This file is subject to the terms of the MIT license (see LICENSE.txt).
4    */
5   package mockit.coverage.dataItems;
6   
7   import edu.umd.cs.findbugs.annotations.NonNull;
8   
9   import java.util.HashMap;
10  import java.util.Map;
11  
12  import mockit.internal.state.TestRun;
13  
14  public final class StaticFieldData extends FieldData {
15      private static final long serialVersionUID = -6596622341651601060L;
16  
17      @NonNull
18      private final transient Map<Integer, Boolean> testIdsToAssignments = new HashMap<>();
19  
20      void registerAssignment() {
21          int testId = TestRun.getTestId();
22          testIdsToAssignments.put(testId, Boolean.TRUE);
23          writeCount++;
24      }
25  
26      void registerRead() {
27          int testId = TestRun.getTestId();
28          testIdsToAssignments.put(testId, null);
29          readCount++;
30      }
31  
32      @Override
33      void markAsCoveredIfNoUnreadValuesAreLeft() {
34          for (Boolean withUnreadValue : testIdsToAssignments.values()) {
35              if (withUnreadValue == null) {
36                  covered = true;
37                  break;
38              }
39          }
40      }
41  }