Coverage Summary for Class: SetMultimapTestSuiteBuilder (com.google.common.collect.testing.google)
| Class | Method, % | Line, % |
|---|---|---|
| SetMultimapTestSuiteBuilder | 0% (0/6) | 0% (0/32) |
| SetMultimapTestSuiteBuilder$EntriesGenerator | 0% (0/2) | 0% (0/2) |
| SetMultimapTestSuiteBuilder$MultimapAsMapGetGenerator | 0% (0/2) | 0% (0/2) |
| SetMultimapTestSuiteBuilder$MultimapGetGenerator | 0% (0/2) | 0% (0/2) |
| Total | 0% (0/12) | 0% (0/38) |
1 /* 2 * Copyright (C) 2012 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.common.collect.testing.google; 18 19 import com.google.common.annotations.GwtIncompatible; 20 import com.google.common.collect.SetMultimap; 21 import com.google.common.collect.testing.AbstractTester; 22 import com.google.common.collect.testing.FeatureSpecificTestSuiteBuilder; 23 import com.google.common.collect.testing.Helpers; 24 import com.google.common.collect.testing.OneSizeTestContainerGenerator; 25 import com.google.common.collect.testing.SetTestSuiteBuilder; 26 import com.google.common.collect.testing.TestSetGenerator; 27 import com.google.common.collect.testing.features.CollectionSize; 28 import com.google.common.collect.testing.features.Feature; 29 import java.util.Collections; 30 import java.util.EnumSet; 31 import java.util.List; 32 import java.util.Map.Entry; 33 import java.util.Set; 34 import junit.framework.TestSuite; 35 36 /** 37 * Creates, based on your criteria, a JUnit test suite that exhaustively tests a {@code SetMultimap} 38 * implementation. 39 * 40 * @author Louis Wasserman 41 */ 42 @GwtIncompatible 43 public class SetMultimapTestSuiteBuilder<K, V> 44 extends MultimapTestSuiteBuilder<K, V, SetMultimap<K, V>> { 45 46 public static <K, V> SetMultimapTestSuiteBuilder<K, V> using( 47 TestSetMultimapGenerator<K, V> generator) { 48 SetMultimapTestSuiteBuilder<K, V> result = new SetMultimapTestSuiteBuilder<>(); 49 result.usingGenerator(generator); 50 return result; 51 } 52 53 @Override 54 protected List<Class<? extends AbstractTester>> getTesters() { 55 List<Class<? extends AbstractTester>> testers = Helpers.copyToList(super.getTesters()); 56 testers.add(SetMultimapAsMapTester.class); 57 testers.add(SetMultimapEqualsTester.class); 58 testers.add(SetMultimapPutTester.class); 59 testers.add(SetMultimapPutAllTester.class); 60 testers.add(SetMultimapReplaceValuesTester.class); 61 return testers; 62 } 63 64 @Override 65 TestSuite computeMultimapGetTestSuite( 66 FeatureSpecificTestSuiteBuilder< 67 ?, ? extends OneSizeTestContainerGenerator<SetMultimap<K, V>, Entry<K, V>>> 68 parentBuilder) { 69 return SetTestSuiteBuilder.using( 70 new MultimapGetGenerator<K, V>(parentBuilder.getSubjectGenerator())) 71 .withFeatures(computeMultimapGetFeatures(parentBuilder.getFeatures())) 72 .named(parentBuilder.getName() + ".get[key]") 73 .suppressing(parentBuilder.getSuppressedTests()) 74 .createTestSuite(); 75 } 76 77 @Override 78 TestSuite computeMultimapAsMapGetTestSuite( 79 FeatureSpecificTestSuiteBuilder< 80 ?, ? extends OneSizeTestContainerGenerator<SetMultimap<K, V>, Entry<K, V>>> 81 parentBuilder) { 82 Set<Feature<?>> features = computeMultimapAsMapGetFeatures(parentBuilder.getFeatures()); 83 if (Collections.disjoint(features, EnumSet.allOf(CollectionSize.class))) { 84 return new TestSuite(); 85 } else { 86 return SetTestSuiteBuilder.using( 87 new MultimapAsMapGetGenerator<K, V>(parentBuilder.getSubjectGenerator())) 88 .withFeatures(features) 89 .named(parentBuilder.getName() + ".asMap[].get[key]") 90 .suppressing(parentBuilder.getSuppressedTests()) 91 .createTestSuite(); 92 } 93 } 94 95 @Override 96 TestSuite computeEntriesTestSuite( 97 FeatureSpecificTestSuiteBuilder< 98 ?, ? extends OneSizeTestContainerGenerator<SetMultimap<K, V>, Entry<K, V>>> 99 parentBuilder) { 100 return SetTestSuiteBuilder.using( 101 new EntriesGenerator<K, V>(parentBuilder.getSubjectGenerator())) 102 .withFeatures(computeEntriesFeatures(parentBuilder.getFeatures())) 103 .named(parentBuilder.getName() + ".entries") 104 .suppressing(parentBuilder.getSuppressedTests()) 105 .createTestSuite(); 106 } 107 108 private static class EntriesGenerator<K, V> 109 extends MultimapTestSuiteBuilder.EntriesGenerator<K, V, SetMultimap<K, V>> 110 implements TestSetGenerator<Entry<K, V>> { 111 112 public EntriesGenerator( 113 OneSizeTestContainerGenerator<SetMultimap<K, V>, Entry<K, V>> multimapGenerator) { 114 super(multimapGenerator); 115 } 116 117 @Override 118 public Set<Entry<K, V>> create(Object... elements) { 119 return (Set<Entry<K, V>>) super.create(elements); 120 } 121 } 122 123 static class MultimapGetGenerator<K, V> 124 extends MultimapTestSuiteBuilder.MultimapGetGenerator<K, V, SetMultimap<K, V>> 125 implements TestSetGenerator<V> { 126 public MultimapGetGenerator( 127 OneSizeTestContainerGenerator<SetMultimap<K, V>, Entry<K, V>> multimapGenerator) { 128 super(multimapGenerator); 129 } 130 131 @Override 132 public Set<V> create(Object... elements) { 133 return (Set<V>) super.create(elements); 134 } 135 } 136 137 static class MultimapAsMapGetGenerator<K, V> 138 extends MultimapTestSuiteBuilder.MultimapAsMapGetGenerator<K, V, SetMultimap<K, V>> 139 implements TestSetGenerator<V> { 140 public MultimapAsMapGetGenerator( 141 OneSizeTestContainerGenerator<SetMultimap<K, V>, Entry<K, V>> multimapGenerator) { 142 super(multimapGenerator); 143 } 144 145 @Override 146 public Set<V> create(Object... elements) { 147 return (Set<V>) super.create(elements); 148 } 149 } 150 }