@Test
  public void transform_type_and_key() {
    final RpslObject rpslObject =
        RpslObject.parse(
            ""
                + "person:      some # with\n"
                + "+            person\n"
                + "+            # remark\n"
                + "nic-hdl:     TEST-PN\n"
                + "+            # another\n"
                + "+            #\n"
                + "+            # remark\n");

    final RpslObject result = attributeSanitizer.sanitize(rpslObject, objectMessages);
    assertThat(
        result.findAttribute(AttributeType.PERSON).getValue(), is("some person # with remark"));
    assertThat(
        result.findAttribute(AttributeType.NIC_HDL).getValue(), is("TEST-PN # another remark"));

    verify(objectMessages)
        .addMessage(result.getTypeAttribute(), ValidationMessages.continuationLinesRemoved());
    verify(objectMessages)
        .addMessage(result.getTypeAttribute(), ValidationMessages.remarksReformatted());
    verify(objectMessages)
        .addMessage(
            result.findAttribute(AttributeType.NIC_HDL),
            ValidationMessages.continuationLinesRemoved());
    verify(objectMessages)
        .addMessage(
            result.findAttribute(AttributeType.NIC_HDL), ValidationMessages.remarksReformatted());

    verifyNoMoreInteractions(objectMessages);
  }
  @Test
  public void transform_source_to_upper() {
    final RpslObject rpslObject =
        RpslObject.parse("person: Person A\nnic-hdl: tst-test\nsource: Test");
    final RpslObject result = attributeSanitizer.sanitize(rpslObject, objectMessages);

    assertThat(result.findAttribute(AttributeType.SOURCE).getValue(), is("TEST"));
  }
  @Test
  public void transform_route6_uppercase() {
    final RpslObject rpslObject =
        RpslObject.parse("" + "route6:          2001:6F8::/32\n" + "origin:          AS12321");

    final RpslObject result = attributeSanitizer.sanitize(rpslObject, objectMessages);
    assertThat(result.getValueForAttribute(AttributeType.ROUTE6).toString(), is("2001:6f8::/32"));
    verify(objectMessages)
        .addMessage(
            result.findAttribute(AttributeType.ROUTE6),
            ValidationMessages.attributeValueConverted("2001:6F8::/32", "2001:6f8::/32"));

    verifyNoMoreInteractions(objectMessages);
  }
  @Test
  public void transform_inetrtr_with_trailing_dot() {
    final RpslObject rpslObject =
        RpslObject.parse(
            "" + "inet-rtr:          test.ripe.net.\n" + "alias:          alias.ripe.net");

    final RpslObject result = attributeSanitizer.sanitize(rpslObject, objectMessages);
    assertThat(result.getValueForAttribute(AttributeType.INET_RTR).toString(), is("test.ripe.net"));
    verify(objectMessages)
        .addMessage(
            result.findAttribute(AttributeType.INET_RTR),
            ValidationMessages.attributeValueConverted("test.ripe.net.", "test.ripe.net"));

    verifyNoMoreInteractions(objectMessages);
  }
  @Test
  public void transform_nserver_with_dot() {
    final RpslObject rpslObject =
        RpslObject.parse(
            "" + "domain:          17.45.212.in-addr.arpa\n" + "nserver:         hostname.nu.\n");

    final RpslObject result = attributeSanitizer.sanitize(rpslObject, objectMessages);
    assertThat(result.getValueForAttribute(AttributeType.NSERVER).toString(), is("hostname.nu"));
    verify(objectMessages)
        .addMessage(
            result.findAttribute(AttributeType.NSERVER),
            ValidationMessages.attributeValueConverted("hostname.nu.", "hostname.nu"));

    verifyNoMoreInteractions(objectMessages);
  }
  @Test
  public void transform_ds_rdata_remove_spaces() {
    final RpslObject rpslObject =
        RpslObject.parse(
            ""
                + "domain:            17.45.212.in-addr.arpa\n"
                + "ds-rdata:          52314 5 1 93B5837D4E5C063 A3728FAA72BA64 068F89B39DF");

    final RpslObject result = attributeSanitizer.sanitize(rpslObject, objectMessages);

    assertThat(
        result.getValueForAttribute(AttributeType.DS_RDATA).toString(),
        is("52314 5 1 93B5837D4E5C063A3728FAA72BA64068F89B39DF"));
    verify(objectMessages)
        .addMessage(
            result.findAttribute(AttributeType.DS_RDATA),
            ValidationMessages.attributeValueConverted(
                "52314 5 1 93B5837D4E5C063 A3728FAA72BA64 068F89B39DF",
                "52314 5 1 93B5837D4E5C063A3728FAA72BA64068F89B39DF"));

    verifyNoMoreInteractions(objectMessages);
  }