Example usage for org.springframework.data.rest.webmvc.json.patch Patch apply

List of usage examples for org.springframework.data.rest.webmvc.json.patch Patch apply

Introduction

In this page you can find the example usage for org.springframework.data.rest.webmvc.json.patch Patch apply.

Prototype

public <T> List<T> apply(List<T> in, Class<T> type) throws PatchException 

Source Link

Document

Applies the Patch to a given List of objects.

Usage

From source file:org.springframework.data.rest.webmvc.json.patch.JsonPatchTest.java

@Test
public void failureAtBeginning() throws Exception {
    // initial Todo list
    List<Todo> todos = new ArrayList<Todo>();
    todos.add(new Todo(1L, "A", true));
    todos.add(new Todo(2L, "B", false));
    todos.add(new Todo(3L, "C", false));
    todos.add(new Todo(4L, "D", false));
    todos.add(new Todo(5L, "E", false));
    todos.add(new Todo(6L, "F", false));

    Patch patch = readJsonPatch("patch-failing-operation-first.json");

    try {// ww w .  j av a  2 s .  c  o  m
        patch.apply(todos, Todo.class);
        fail();
    } catch (PatchException e) {
        assertEquals("Test against path '/5/description' failed.", e.getMessage());
    }

    // nothing should have changed
    assertEquals(6, todos.size());
    assertFalse(todos.get(1).isComplete());
    assertEquals("D", todos.get(3).getDescription());
    assertEquals("E", todos.get(4).getDescription());
    assertEquals("F", todos.get(5).getDescription());
}

From source file:org.springframework.data.rest.webmvc.json.patch.JsonPatchTest.java

@Test
public void failureInMiddle() throws Exception {
    // initial Todo list
    List<Todo> todos = new ArrayList<Todo>();
    todos.add(new Todo(1L, "A", true));
    todos.add(new Todo(2L, "B", false));
    todos.add(new Todo(3L, "C", false));
    todos.add(new Todo(4L, "D", false));
    todos.add(new Todo(5L, "E", false));
    todos.add(new Todo(6L, "F", false));

    Patch patch = readJsonPatch("patch-failing-operation-in-middle.json");

    try {/*from   ww w . j  a  v a2 s. co  m*/
        patch.apply(todos, Todo.class);
        fail();
    } catch (PatchException e) {
        assertEquals("Test against path '/5/description' failed.", e.getMessage());
    }

    // nothing should have changed
    assertEquals(6, todos.size());
    assertFalse(todos.get(1).isComplete());
    assertEquals("D", todos.get(3).getDescription());
    assertEquals("E", todos.get(4).getDescription());
    assertEquals("F", todos.get(5).getDescription());
}

From source file:org.springframework.data.rest.webmvc.json.patch.JsonPatchTest.java

@Test
public void manySuccessfulOperations() throws Exception {
    // initial Todo list
    List<Todo> todos = new ArrayList<Todo>();
    todos.add(new Todo(1L, "A", true));
    todos.add(new Todo(2L, "B", false));
    todos.add(new Todo(3L, "C", false));
    todos.add(new Todo(4L, "D", false));
    todos.add(new Todo(5L, "E", false));
    todos.add(new Todo(6L, "F", false));

    Patch patch = readJsonPatch("patch-many-successful-operations.json");
    assertEquals(6, patch.size());/*from   w  w  w .ja  v  a2  s  .co m*/

    List<Todo> patchedTodos = patch.apply(todos, Todo.class);

    assertEquals(6, todos.size());
    assertTrue(patchedTodos.get(1).isComplete());
    assertEquals("C", patchedTodos.get(3).getDescription());
    assertEquals("A", patchedTodos.get(4).getDescription());
}