@Test
  public void persistCustomServiceProperties() throws Exception {
    final RegexRegisteredService r = new RegexRegisteredService();
    r.setServiceId("^https://.+");
    r.setName("persistCustomServiceProperties");
    r.setId(4245);

    final Map<String, RegisteredServiceProperty> properties = new HashMap<>();
    final DefaultRegisteredServiceProperty property = new DefaultRegisteredServiceProperty();
    final Set<String> values = new HashSet<>();
    values.add("value1");
    values.add("value2");
    property.setValues(values);
    properties.put("field1", property);

    final DefaultRegisteredServiceProperty property2 = new DefaultRegisteredServiceProperty();
    final Set<String> values2 = new HashSet<>();
    values2.add("value12");
    values2.add("value22");
    property2.setValues(values2);
    properties.put("field2", property2);

    r.setProperties(properties);

    this.dao.save(r);
    final List<RegisteredService> list = this.dao.load();
    assertNotNull(this.dao.findServiceById(r.getId()));
    assertEquals(r.getProperties().size(), 2);
    assertNotNull(r.getProperties().get("field1"));

    final RegisteredServiceProperty prop = r.getProperties().get("field1");
    assertEquals(prop.getValues().size(), 2);
  }
  @Test
  public void serializePublicKeyForServiceAndVerify() throws Exception {
    final RegisteredServicePublicKey publicKey =
        new RegisteredServicePublicKeyImpl("classpath:RSA1024Public.key", "RSA");

    final RegexRegisteredService r = new RegexRegisteredService();
    r.setServiceId("^https://.+");
    r.setName("serializePublicKeyForServiceAndVerify");
    r.setId(4245);
    r.setPublicKey(publicKey);

    this.dao.save(r);
    final List<RegisteredService> list = this.dao.load();
    assertNotNull(this.dao.findServiceById(r.getId()));
  }
  @Test
  public void verifySaveMethodWithExistingServiceNoAttribute() {
    final RegexRegisteredService r = new RegexRegisteredService();
    r.setName("testSaveMethodWithExistingServiceNoAttribute");
    r.setServiceId("testId");
    r.setTheme("theme");
    r.setDescription("description");
    this.dao.save(r);
    r.setTheme("mytheme");

    this.dao.save(r);

    final RegisteredService r3 = this.dao.findServiceById(r.getId());
    assertEquals(r, r3);
  }