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 }