code: package org.gridkit.jvmtool.codec;
  
  import static org.assertj.core.api.Assertions.assertThat;
  
  import org.gridkit.jvmtool.event.SimpleTagCollection;
  import org.junit.Test;
  
  public class SimpleTagCollectionTest {
  
      @Test
      public void empty_collection() {
  
          SimpleTagCollection tags = new SimpleTagCollection();
  
          assertThat(tags).isEmpty();
          assertThat(tags.tagsFor("A")).isEmpty();
          assertThat(tags.contains("A", "A")).isFalse();
      }
  
      @Test
      public void simple_ops() {
  
          SimpleTagCollection tags = new SimpleTagCollection();
  
          tags.put("A", "1");
          tags.put("B", "1");
          tags.put("B", "2");
          tags.put("B", "3");
  
          assertThat(tags).containsExactly("A", "B");
          assertThat(tags.tagsFor("A")).containsExactly("1");
          assertThat(tags.tagsFor("B")).containsExactly("1", "2", "3");
      }
  
      @Test
      public void removal_ops() {
  
          SimpleTagCollection tags = new SimpleTagCollection();
  
          tags.put("A", "1");
          tags.put("B", "1");
          tags.put("B", "2");
          tags.put("B", "3");
          tags.put("D", "0");
  
          assertThat(tags).containsExactly("A", "B", "D");
          assertThat(tags.tagsFor("A")).containsExactly("1");
          assertThat(tags.tagsFor("B")).containsExactly("1", "2", "3");
          assertThat(tags.tagsFor("D")).containsExactly("0");
  
          tags.remove("B", "2");
  
          assertThat(tags).containsExactly("A", "B", "D");
          assertThat(tags.tagsFor("A")).containsExactly("1");
          assertThat(tags.tagsFor("B")).containsExactly("1", "3");
          assertThat(tags.tagsFor("D")).containsExactly("0");
  
          tags.remove("B");
  
          assertThat(tags).containsExactly("A", "D");
          assertThat(tags.tagsFor("A")).containsExactly("1");
          assertThat(tags.tagsFor("B")).isEmpty();
          assertThat(tags.tagsFor("D")).containsExactly("0");
      }
  
      @Test
      public void empty_tag() {
  
          SimpleTagCollection tags = new SimpleTagCollection();
  
          tags.put("A", "");
  
          assertThat(tags).containsExactly("A");
          assertThat(tags.tagsFor("A")).containsExactly("");
      }
  }
  