alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (MapsCollectionTest.java)

This example Java source code file (MapsCollectionTest.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

annotation, bimap, entry, function, integer, navigablemap, override, predicate, safetreemap, sampleelements, sortedmap, string, teststringmapgenerator, teststringsortedmapgenerator, testsuite, util

The MapsCollectionTest.java Java example source code

/*
 * Copyright (C) 2012 The Guava Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.common.collect;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.testing.Helpers.mapEntry;

import com.google.common.base.Charsets;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Maps.EntryTransformer;
import com.google.common.collect.testing.Helpers;
import com.google.common.collect.testing.MapTestSuiteBuilder;
import com.google.common.collect.testing.NavigableMapTestSuiteBuilder;
import com.google.common.collect.testing.SafeTreeMap;
import com.google.common.collect.testing.SampleElements;
import com.google.common.collect.testing.SortedMapTestSuiteBuilder;
import com.google.common.collect.testing.TestMapGenerator;
import com.google.common.collect.testing.TestStringMapGenerator;
import com.google.common.collect.testing.TestStringSortedMapGenerator;
import com.google.common.collect.testing.features.CollectionFeature;
import com.google.common.collect.testing.features.CollectionSize;
import com.google.common.collect.testing.features.MapFeature;
import com.google.common.collect.testing.google.BiMapTestSuiteBuilder;
import com.google.common.collect.testing.google.TestStringBiMapGenerator;
import com.google.common.io.BaseEncoding;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NavigableMap;
import java.util.NavigableSet;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;

import javax.annotation.Nullable;

/**
 * Test suites for wrappers in {@code Maps}.
 *
 * @author Louis Wasserman
 */
public class MapsCollectionTest extends TestCase {
  public static Test suite() {
    TestSuite suite = new TestSuite();

    suite.addTest(NavigableMapTestSuiteBuilder
        .using(new TestStringSortedMapGenerator() {
          @Override
          protected SortedMap<String, String> create(Entry[] entries) {
            SafeTreeMap<String, String> map = new SafeTreeMap();
            putEntries(map, entries);
            return Maps.unmodifiableNavigableMap(map);
          }
        })
        .named("unmodifiableNavigableMap[SafeTreeMap]")
        .withFeatures(CollectionSize.ANY,
            MapFeature.ALLOWS_NULL_VALUES,
            CollectionFeature.SERIALIZABLE)
        .createTestSuite());
    suite.addTest(BiMapTestSuiteBuilder
        .using(new TestStringBiMapGenerator() {
          @Override
          protected BiMap<String, String> create(Entry[] entries) {
            BiMap<String, String> bimap = HashBiMap.create(entries.length);
            for (Entry<String, String> entry : entries) {
              checkArgument(!bimap.containsKey(entry.getKey()));
              bimap.put(entry.getKey(), entry.getValue());
            }
            return Maps.unmodifiableBiMap(bimap);
          }
        })
        .named("unmodifiableBiMap[HashBiMap]")
        .withFeatures(
            CollectionSize.ANY,
            MapFeature.ALLOWS_NULL_VALUES,
            MapFeature.ALLOWS_NULL_KEYS,
            MapFeature.ALLOWS_ANY_NULL_QUERIES,
            MapFeature.REJECTS_DUPLICATES_AT_CREATION,
            CollectionFeature.SERIALIZABLE)
        .createTestSuite());
    suite.addTest(MapTestSuiteBuilder
        .using(new TestMapGenerator<String, Integer>() {
          @Override
          public SampleElements<Entry samples() {
            return new SampleElements<Entry(
                mapEntry("x", 1),
                mapEntry("xxx", 3),
                mapEntry("xx", 2),
                mapEntry("xxxx", 4),
                mapEntry("aaaaa", 5));
          }

          @Override
          public Map<String, Integer> create(Object... elements) {
            Set<String> set = Sets.newLinkedHashSet();
            for (Object e : elements) {
              Entry<?, ?> entry = (Entry) e;
              checkNotNull(entry.getValue());
              set.add((String) checkNotNull(entry.getKey()));
            }
            return Maps.asMap(set, new Function<String, Integer>() {
              @Override
              public Integer apply(String input) {
                return input.length();
              }
            });
          }

          @SuppressWarnings("unchecked")
          @Override
          public Entry<String, Integer>[] createArray(int length) {
            return new Entry[length];
          }

          @Override
          public Iterable<Entry order(
              List<Entry insertionOrder) {
            return insertionOrder;
          }

          @Override
          public String[] createKeyArray(int length) {
            return new String[length];
          }

          @Override
          public Integer[] createValueArray(int length) {
            return new Integer[length];
          }
        })
        .named("Maps.asMap[Set, Function]")
        .withFeatures(CollectionSize.ANY,
            MapFeature.SUPPORTS_REMOVE,
            CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
        .createTestSuite());
    suite.addTest(SortedMapTestSuiteBuilder
        .using(new TestMapGenerator<String, Integer>() {
          @Override
          public String[] createKeyArray(int length) {
            return new String[length];
          }

          @Override
          public Integer[] createValueArray(int length) {
            return new Integer[length];
          }

          @Override
          public SampleElements<Entry samples() {
            return new SampleElements<Entry(
                mapEntry("a", 1),
                mapEntry("aa", 2),
                mapEntry("aba", 3),
                mapEntry("bbbb", 4),
                mapEntry("ccccc", 5));
          }

          @Override
          public SortedMap<String, Integer> create(Object... elements) {
            SortedSet<String> set = new NonNavigableSortedSet();
            for (Object e : elements) {
              Entry<?, ?> entry = (Entry) e;
              checkNotNull(entry.getValue());
              set.add((String) checkNotNull(entry.getKey()));
            }
            return Maps.asMap(set, new Function<String, Integer>() {
              @Override
              public Integer apply(String input) {
                return input.length();
              }
            });
          }

          @SuppressWarnings("unchecked")
          @Override
          public Entry<String, Integer>[] createArray(int length) {
            return new Entry[length];
          }

          @Override
          public Iterable<Entry order(
              List<Entry insertionOrder) {
            Collections.sort(insertionOrder, new Comparator<Entry() {
              @Override
              public int compare(Entry<String, Integer> o1, Entry o2) {
                return o1.getKey().compareTo(o2.getKey());
              }
            });
            return insertionOrder;
          }
        })
        .named("Maps.asMap[SortedSet, Function]")
        .withFeatures(CollectionSize.ANY,
            CollectionFeature.SUPPORTS_ITERATOR_REMOVE,
            MapFeature.SUPPORTS_REMOVE)
        .createTestSuite());
    suite.addTest(NavigableMapTestSuiteBuilder
        .using(new TestMapGenerator<String, Integer>() {
          @Override
          public String[] createKeyArray(int length) {
            return new String[length];
          }

          @Override
          public Integer[] createValueArray(int length) {
            return new Integer[length];
          }

          @Override
          public SampleElements<Entry samples() {
            return new SampleElements<Entry(
                mapEntry("a", 1),
                mapEntry("aa", 2),
                mapEntry("aba", 3),
                mapEntry("bbbb", 4),
                mapEntry("ccccc", 5));
          }

          @Override
          public NavigableMap<String, Integer> create(Object... elements) {
            NavigableSet<String> set = Sets.newTreeSet(Ordering.natural());
            for (Object e : elements) {
              Map.Entry<?, ?> entry = (Entry) e;
              checkNotNull(entry.getValue());
              set.add((String) checkNotNull(entry.getKey()));
            }
            return Maps.asMap(set, new Function<String, Integer>() {
              @Override
              public Integer apply(String input) {
                return input.length();
              }
            });
          }

          @SuppressWarnings("unchecked")
          @Override
          public Entry<String, Integer>[] createArray(int length) {
            return new Entry[length];
          }

          @Override
          public Iterable<Entry order(
              List<Entry insertionOrder) {
            Collections.sort(insertionOrder, new Comparator<Entry() {
              @Override
              public int compare(Entry<String, Integer> o1, Entry o2) {
                return o1.getKey().compareTo(o2.getKey());
              }
            });
            return insertionOrder;
          }
        })
        .named("Maps.asMap[NavigableSet, Function]")
        .withFeatures(CollectionSize.ANY,
            MapFeature.SUPPORTS_REMOVE,
            CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
        .createTestSuite());
    suite.addTest(filterSuite());
    suite.addTest(transformSuite());
    return suite;
  }

  static TestSuite filterSuite() {
    TestSuite suite = new TestSuite("Filter");
    suite.addTest(filterMapSuite());
    suite.addTest(filterBiMapSuite());
    suite.addTest(filterSortedMapSuite());
    suite.addTest(filterNavigableMapSuite());
    return suite;
  }

  static TestSuite filterMapSuite() {
    TestSuite suite = new TestSuite("FilterMap");
    suite.addTest(MapTestSuiteBuilder.using(new TestStringMapGenerator() {
        @Override
        protected Map<String, String> create(Entry[] entries) {
          Map<String, String> map = Maps.newHashMap();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterKeys(map, FILTER_KEYS);
        }
      })
      .named("Maps.filterKeys[Map, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(MapTestSuiteBuilder.using(new TestStringMapGenerator() {
        @Override
        protected Map<String, String> create(Entry[] entries) {
          Map<String, String> map = Maps.newHashMap();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterValues(map, FILTER_VALUES);
        }
      })
      .named("Maps.filterValues[Map, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(MapTestSuiteBuilder.using(new TestStringMapGenerator() {
        @Override
        protected Map<String, String> create(Entry[] entries) {
          Map<String, String> map = Maps.newHashMap();
          putEntries(map, entries);
           map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterEntries(map, FILTER_ENTRIES);
        }
      })
      .named("Maps.filterEntries[Map, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(MapTestSuiteBuilder.using(new TestStringMapGenerator() {
        @Override
        protected Map<String, String> create(Entry[] entries) {
          Map<String, String> map = Maps.newHashMap();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          map = Maps.filterEntries(map, FILTER_ENTRIES_1);
          return Maps.filterEntries(map, FILTER_ENTRIES_2);
        }
      })
      .named("Maps.filterEntries[Maps.filterEntries[Map, Predicate], Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    return suite;
  }

  static TestSuite filterBiMapSuite() {
    TestSuite suite = new TestSuite("FilterBiMap");
    suite.addTest(BiMapTestSuiteBuilder.using(new TestStringBiMapGenerator() {
        @Override
        protected BiMap<String, String> create(Entry[] entries) {
          BiMap<String, String> map = HashBiMap.create();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterKeys(map, FILTER_KEYS);
        }
      })
      .named("Maps.filterKeys[BiMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(BiMapTestSuiteBuilder.using(new TestStringBiMapGenerator() {
        @Override
        protected BiMap<String, String> create(Entry[] entries) {
          BiMap<String, String> map = HashBiMap.create();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterValues(map, FILTER_VALUES);
        }
      })
      .named("Maps.filterValues[BiMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(BiMapTestSuiteBuilder.using(new TestStringBiMapGenerator() {
        @Override
        protected BiMap<String, String> create(Entry[] entries) {
          BiMap<String, String> map = HashBiMap.create();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterEntries(map, FILTER_ENTRIES);
        }
      })
      .named("Maps.filterEntries[BiMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    return suite;
  }

  static TestSuite filterSortedMapSuite() {
    TestSuite suite = new TestSuite("FilterSortedMap");
    suite.addTest(SortedMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected SortedMap<String, String> create(Entry[] entries) {
          SortedMap<String, String> map = new NonNavigableSortedMap();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
         return Maps.filterKeys(map, FILTER_KEYS);
        }
      })
      .named("Maps.filterKeys[SortedMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(SortedMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected SortedMap<String, String> create(Entry[] entries) {
          SortedMap<String, String> map = new NonNavigableSortedMap();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterValues(map, FILTER_VALUES);
        }
      })
      .named("Maps.filterValues[SortedMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    suite.addTest(SortedMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected SortedMap<String, String> create(Entry[] entries) {
          SortedMap<String, String> map = new NonNavigableSortedMap();
          putEntries(map, entries);
          map.putAll(ENTRIES_TO_FILTER);
          return Maps.filterEntries(map, FILTER_ENTRIES);
        }
      })
      .named("Maps.filterEntries[SortedMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
      .createTestSuite());
    return suite;
  }

  static TestSuite filterNavigableMapSuite() {
    TestSuite suite = new TestSuite("FilterNavigableMap");
    suite.addTest(NavigableMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
      @Override
      protected NavigableMap<String, String> create(Entry[] entries) {
        NavigableMap<String, String> map = new SafeTreeMap();
        putEntries(map, entries);
        map.put("banana", "toast");
        map.put("eggplant", "spam");
        return Maps.filterKeys(map, FILTER_KEYS);
      }
    })
    .named("Maps.filterKeys[NavigableMap, Predicate]")
    .withFeatures(
        MapFeature.ALLOWS_NULL_VALUES,
        MapFeature.GENERAL_PURPOSE,
        CollectionSize.ANY)
        .createTestSuite());
    suite.addTest(NavigableMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
      @Override
      protected NavigableMap<String, String> create(Entry[] entries) {
        NavigableMap<String, String> map = new SafeTreeMap();
        putEntries(map, entries);
        map.put("banana", "toast");
        map.put("eggplant", "spam");
          return Maps.filterValues(map, FILTER_VALUES);
        }
      })
      .named("Maps.filterValues[NavigableMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
          .createTestSuite());
    suite.addTest(NavigableMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
      @Override
      protected NavigableMap<String, String> create(Entry[] entries) {
        NavigableMap<String, String> map = new SafeTreeMap();
        putEntries(map, entries);
        map.put("banana", "toast");
        map.put("eggplant", "spam");
          return Maps.filterEntries(map, FILTER_ENTRIES);
        }
      })
      .named("Maps.filterEntries[NavigableMap, Predicate]")
      .withFeatures(
          MapFeature.ALLOWS_NULL_VALUES,
          MapFeature.GENERAL_PURPOSE,
          CollectionSize.ANY)
          .createTestSuite());
    return suite;
  }

  static void putEntries(Map<String, String> map, Entry[] entries) {
    for (Entry<String, String> entry : entries) {
       map.put(entry.getKey(), entry.getValue());
     }
  }

  static final Predicate<String> FILTER_KEYS = new Predicate() {
    @Override
    public boolean apply(@Nullable String string) {
      return !"banana".equals(string) && !"eggplant".equals(string);
    }
  };

  static final Predicate<String> FILTER_VALUES = new Predicate() {
    @Override
    public boolean apply(@Nullable String string) {
      return !"toast".equals(string) && !"spam".equals(string);
    }
  };

  static final Predicate<Entry FILTER_ENTRIES =
      new Predicate<Entry() {
    @Override
    public boolean apply(Entry<String, String> entry) {
      return !Helpers.mapEntry("banana", "toast").equals(entry)
          && !Helpers.mapEntry("eggplant", "spam").equals(entry);
    }
  };

  static final Predicate<Entry FILTER_ENTRIES_1 =
      new Predicate<Entry() {
    @Override
    public boolean apply(Entry<String, String> entry) {
      return !Helpers.mapEntry("banana", "toast").equals(entry);
    }
  };

  static final Predicate<Entry FILTER_ENTRIES_2 =
      new Predicate<Entry() {
    @Override
    public boolean apply(Entry<String, String> entry) {
      return !Helpers.mapEntry("eggplant", "spam").equals(entry);
    }
  };

  static final Map<String, String> ENTRIES_TO_FILTER =
      ImmutableMap.of("banana", "toast", "eggplant", "spam");

  static final Predicate<Entry NOT_NULL_ENTRY =
      new Predicate<Entry() {
    @Override
    public boolean apply(Entry<String, String> entry) {
      return entry.getKey() != null && entry.getValue() != null;
    }
  };

  private static class NonNavigableSortedSet
      extends ForwardingSortedSet<String> {

    private final SortedSet<String> delegate = Sets.newTreeSet(Ordering.natural());

    @Override
    protected SortedSet<String> delegate() {
      return delegate;
    }
  }

  private static class NonNavigableSortedMap
      extends ForwardingSortedMap<String, String> {

    private final SortedMap<String, String> delegate =
        new SafeTreeMap<String, String>(Ordering.natural());

    @Override
    protected SortedMap<String, String> delegate() {
      return delegate;
    }
  }

  private static String encode(String str) {
    return BaseEncoding.base64().encode(str.getBytes(Charsets.UTF_8));
  }

  private static final Function<String, String> DECODE_FUNCTION = new Function() {
    @Override
    public String apply(String input) {
      return new String(BaseEncoding.base64().decode(input), Charsets.UTF_8);
    }
  };

  private static final EntryTransformer<String, String, String> DECODE_ENTRY_TRANSFORMER =
      new EntryTransformer<String, String, String>() {
    @Override
    public String transformEntry(String key, String value) {
      return DECODE_FUNCTION.apply(value);
    }
  };

  static TestSuite transformSuite() {
    TestSuite suite = new TestSuite("Maps.transform");
    suite.addTest(transformMapSuite());
    suite.addTest(transformSortedMapSuite());
    suite.addTest(transformNavigableMapSuite());
    return suite;
  }

  static TestSuite transformMapSuite() {
    TestSuite suite = new TestSuite("TransformMap");
    suite.addTest(MapTestSuiteBuilder.using(new TestStringMapGenerator() {
        @Override
        protected Map<String, String> create(Entry[] entries) {
          Map<String, String> map = Maps.newLinkedHashMap();
          for (Entry<String, String> entry : entries) {
            map.put(entry.getKey(), encode(entry.getValue()));
          }
          return Maps.transformValues(map, DECODE_FUNCTION);
        }
      })
      .named("Maps.transformValues[Map, Function]")
      .withFeatures(
          CollectionSize.ANY,
          CollectionFeature.KNOWN_ORDER,
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.SUPPORTS_REMOVE,
          CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
      .createTestSuite());
    suite.addTest(MapTestSuiteBuilder.using(new TestStringMapGenerator() {
        @Override
        protected Map<String, String> create(Entry[] entries) {
          Map<String, String> map = Maps.newLinkedHashMap();
          for (Entry<String, String> entry : entries) {
            map.put(entry.getKey(), encode(entry.getValue()));
          }
          return Maps.transformEntries(map, DECODE_ENTRY_TRANSFORMER);
        }
      })
      .named("Maps.transformEntries[Map, EntryTransformer]")
      .withFeatures(
          CollectionSize.ANY,
          CollectionFeature.KNOWN_ORDER,
          MapFeature.ALLOWS_NULL_KEYS,
          MapFeature.ALLOWS_ANY_NULL_QUERIES,
          MapFeature.SUPPORTS_REMOVE,
          CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
      .createTestSuite());
    return suite;
  }

  static TestSuite transformSortedMapSuite() {
    TestSuite suite = new TestSuite("TransformSortedMap");
    suite.addTest(SortedMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected SortedMap<String, String> create(Entry[] entries) {
          SortedMap<String, String> map = new NonNavigableSortedMap();
          for (Entry<String, String> entry : entries) {
            map.put(entry.getKey(), encode(entry.getValue()));
          }
          return Maps.transformValues(map, DECODE_FUNCTION);
        }
      })
      .named("Maps.transformValues[SortedMap, Function]")
      .withFeatures(
          CollectionSize.ANY,
          CollectionFeature.KNOWN_ORDER,
          MapFeature.SUPPORTS_REMOVE,
          CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
      .createTestSuite());
    suite.addTest(SortedMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected SortedMap<String, String> create(Entry[] entries) {
          SortedMap<String, String> map = new NonNavigableSortedMap();
          for (Entry<String, String> entry : entries) {
            map.put(entry.getKey(), encode(entry.getValue()));
          }
          return Maps.transformEntries(map, DECODE_ENTRY_TRANSFORMER);
        }
      })
      .named("Maps.transformEntries[SortedMap, EntryTransformer]")
      .withFeatures(
          CollectionSize.ANY,
          CollectionFeature.KNOWN_ORDER,
          MapFeature.SUPPORTS_REMOVE,
          CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
      .createTestSuite());
    return suite;
  }

  static TestSuite transformNavigableMapSuite() {
    TestSuite suite = new TestSuite("TransformNavigableMap");
    suite.addTest(NavigableMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected NavigableMap<String, String> create(Entry[] entries) {
          NavigableMap<String, String> map = new SafeTreeMap();
          for (Entry<String, String> entry : entries) {
            map.put(entry.getKey(), encode(entry.getValue()));
          }
          return Maps.transformValues(map, DECODE_FUNCTION);
        }
      })
      .named("Maps.transformValues[NavigableMap, Function]")
      .withFeatures(
          CollectionSize.ANY,
          CollectionFeature.KNOWN_ORDER,
          MapFeature.SUPPORTS_REMOVE,
          CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
      .createTestSuite());
    suite.addTest(NavigableMapTestSuiteBuilder.using(new TestStringSortedMapGenerator() {
        @Override
        protected NavigableMap<String, String> create(Entry[] entries) {
          NavigableMap<String, String> map = new SafeTreeMap();
          for (Entry<String, String> entry : entries) {
            map.put(entry.getKey(), encode(entry.getValue()));
          }
          return Maps.transformEntries(map, DECODE_ENTRY_TRANSFORMER);
        }
      })
      .named("Maps.transformEntries[NavigableMap, EntryTransformer]")
      .withFeatures(
          CollectionSize.ANY,
          CollectionFeature.KNOWN_ORDER,
          MapFeature.SUPPORTS_REMOVE,
          CollectionFeature.SUPPORTS_ITERATOR_REMOVE)
      .createTestSuite());
    return suite;
  }
}

Other Java examples (source code examples)

Here is a short list of links related to this Java MapsCollectionTest.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.