anchor.diff:  MangooUnit for simple unit tests.
   
   See the https://github.com/FluentLenium/FluentLeniuhttps://github.com/FluentLenium/FluentLenium[FluentLenium documentation] on how to use FluentLenium standalone.
  +
  +=== Frontend testing
  +
  +For frontend testing mangoo I/O uses
  +https://github.com/FluentLenium/FluentLenium[FluentLenium]. Here is an example of how a FluentLenium test might look
  +like.
  +
  +[source,java]
  +------------------------------------------------------------------
  +package mangoo.controllers;
  +
  +import static org.junit.Assert.assertTrue;
  +import io.mangoo.testing.MangooUnit;
  +
  +import org.junit.Test;
  +
  +public class FluentTest extends MangooFluent {
  +
  +    @Test
  +    public void title_of_bing_should_contain_search_query_name() {
  +        goTo("http://www.bing.com");
  +        fill("#sb_form_q").with("FluentLenium");
  +        submit("#sb_form_go");
  +        assertTrue(title().contains("FluentLenium"));
  +    }
  +}
  +------------------------------------------------------------------
   
   == Deployment
   
  
positive.code: http://quartz-scheduler.org/generated/2.2.1/html/qs-all/#page/Quartz_Scheduler_Documentation_Set%2F_qs_all.1.041.html%23[Quartz
  Scheudler configuration documentation] for more information.
  
  == Working with JSON
  
  mangoo I/O uses https://github.com/boonproject/boon[boon] for parsing JSON. boon is a
  http://rick-hightower.blogspot.de/2014/01/boon-json-in-five-minutes-faster-json.htm[very
  fast] JSON handler with its main focus on serializing and deserializing of objects.
  
  === JSON output
  
  Consider for example the following POJO.
  
  [source,java]
  ---------------------------------------------------------------
  package models;
  
  public class Person {
      private String firstname;
      private String lastname;
      private int age;
  
      public Person(String firstname, String lastname, int age) {
          this.firstname = firstname;
          this.lastname = lastname;
          this.age = age;
      }
  
      public String getFirstname() {
          return firstname;
      }
  
     public String getLastname() {
         return lastname;
      }
  
      public int getAge() {
          return age;
      }
  }
  ---------------------------------------------------------------
  
  To create a new person object and send it as a response you can simply can do this in
  a controller
  
  [source,java]
  ----------------------------------------------------------
  package controllers;
  
  import io.mangoo.routing.Response;
  import models.Person;
  
  public class JsonController {
      public Response render() {
          Person person = new Person("Peter", "Parker", 24);
          return Response.withOk().andJsonBody(person);
      }
  }
  ----------------------------------------------------------
  
  The output of the response will look as follows
  
  [source,json]
  --------------------------
  {
      "firstname" : "Peter",
      "lastname" : "Parker",
      "age" : 24
  }
  --------------------------
  
  === JSON input
  
  To retrieve JSON which is send to your mangoo I/O application you have three options:
  automatic object serialization, generic object convertion or working with the raw JSON
  string.
  
  ==== Automatic object convertion
  
  Consider the person class from above and the following JSON send to
  mangoo I/O
  
  [source,json]
  ---------------------------
  {
      "firstname" : "Petyr",
      "lastname" : "Baelish",
      "age" : 42
  }
  ---------------------------
  
  To handle this JSON with automatic object convertion you can simply do this
  in a controller.
  
  [source,java]
  -----------------------------------------------
  package controllers;
  
  import io.mangoo.routing.Response;
  import models.Person;
  
  public class JsonController {
      public Response parse(Person person) {
          // TODO Do something with person object
          ...
      }
  }
  -----------------------------------------------
  
  You just pass the object you want to convert from the JSON request and
  mangoo I/O automatically makes the serialization to your POJO, making it available
  in your controller.
  
  ==== Generic object convertion
  
  If you don't have a POJO and you want to retrieve the JSON content,
  mangoo I/O offers you a generic way of retrieving the content through
  the object body of a request to a Map<String, Object>.
  
  [source,java]
  --------------------------------------------
  package controllers;
  
  import io.mangoo.routing.Response;
  
  public class MyController {
      public Response parse(Body body) {
          Map<String, Object> myjson = body.asJSON();
          String foo = json.get("firstname");
      }
  }
  --------------------------------------------
  
  ==== Handle raw JSON string
  
  If you don't want mangoo I/O to automatically convert a JSON input you
  can also work with the raw JSON string. The body object contains the raw
  values of a request. Here is an example
  
  [source,java]
  -----------------------------------------
  package controllers;
  
  import io.mangoo.routing.Response;
  
  public class MyController {
      public Response parse(Body body) {
          String content = body.asString();
          ...
      }
  }
  -----------------------------------------
  
  == Sending eMails
  
  mangoo I/O uses the mature and well documentated
  
negative.code: create a key "success", "warning" or "error" in the flash class. Besides
  that, you can pass custom values to the flash class.
  
  === Flash in templates
  
  To access the flash values, simply call the appropriate key in your
  template.
  