@Test(expected = SOAPFaultException.class)
  public void anonymousShouldNotUpdate() {

    String name = "doliprane";

    String description =
        "Ce médicament est un antalgique et un antipyrétique qui contient du paracétamol."
            + "\nIl est utilisé pour faire baisser la fièvre et dans le traitement des affections douloureuses.";

    Long productId = addProduct(name, description, ANONYMOUS_LOGIN, ANONYMOUS_PASSWORD);

    Product p = securedService.get(productId);

    assertNotNull(p);

    String newName = "prozac";

    p.setName(newName);

    String newDescription =
        "Ce médicament est un antidépresseur de la famille des inhibiteurs de la recapture de la sérotonine.";

    newDescription +=
        "Il est utilisé chez l'adulte dans le traitement : -des états dépressifs ; \n-des troubles obsessionnels compulsifs ;";

    newDescription += "\n- de la boulimie (en complément d'une psychothérapie). ;";

    p.setDescription(newDescription);

    securedService = getSecuredProxy(ANONYMOUS_LOGIN, ANONYMOUS_PASSWORD);

    securedService.update(p);
  }
  @Test(expected = SOAPFaultException.class)
  public void anonymousShouldNotDelete() {

    String name = "doliprane";

    String description =
        "Ce médicament est un antalgique et un antipyrétique qui contient du paracétamol."
            + "\nIl est utilisé pour faire baisser la fièvre et dans le traitement des affections douloureuses.";

    Long productId = addProduct(name, description, ADMIN_LOGIN, ADMIN_PASSWORD);

    securedService = getSecuredProxy(ANONYMOUS_LOGIN, ANONYMOUS_PASSWORD);

    assertNotNull(securedService.get(productId));

    securedService.delete(productId);
  }
  @Test
  public void anonymousShouldFindByDescription() {

    String name = "doliprane";

    String description =
        "Ce médicament est un antalgique et un antipyrétique qui contient du paracétamol."
            + "\nIl est utilisé pour faire baisser la fièvre et dans le traitement des affections douloureuses.";

    addProduct(name, description, ADMIN_LOGIN, ADMIN_PASSWORD);

    assertEquals(PRODUCTS_INITIAL_SIZE + 1, securedService.list().size());

    String term = "description";

    securedService = getSecuredProxy(ANONYMOUS_LOGIN, ANONYMOUS_PASSWORD);

    assertEquals(PRODUCTS_INITIAL_SIZE, securedService.findByDescription(term).size());
  }
  @Test
  public final void anonymousShouldList() {

    securedService = getSecuredProxy(ANONYMOUS_LOGIN, ANONYMOUS_PASSWORD);

    List<Product> products = securedService.list();

    assertNotNull(products);

    assertEquals(PRODUCTS_INITIAL_SIZE, products.size());
  }
  private Long addProduct(String name, String description, String login, String password) {
    securedService = getSecuredProxy(login, password);

    Product p = new Product();

    p.setName(name);

    p.setDescription(description);

    return securedService.add(p);
  }
  private void setUpNewProductRepository() {

    securedService = getSecuredProxy(ADMIN_LOGIN, ADMIN_PASSWORD);

    securedService.clear();

    for (int i = 0; i < PRODUCTS_INITIAL_SIZE; i++) {

      Product p = new Product();

      String name = "name" + i;

      String description = "description" + i;

      p.setName(name);

      p.setDescription(description);

      securedService.add(p);
    }
  }