public void testWriteProperties() throws IOException {
    Map<String, Object> properties = new HashMap<String, Object>(4);
    properties.put(ICouchAppUtil.PROP_COUCHAPP_NAME, "My CouchApp Name");
    properties.put(ICouchAppUtil.PROP_COUCHAPP_DESCRIPTION, "My CouchApp Description");
    properties.put(ICouchAppUtil.PROP_DESIGN_DOC_ID, "_design/newdesignname");
    List<CouchDbServer> servers = new LinkedList<CouchDbServer>();
    servers.add(new CouchDbServer("debug_db", "http://127.0.0.1:5984/debug_db"));
    servers.add(new CouchDbServer("prod_db", "http://127.0.0.1:5984/prod_db"));
    properties.put(ICouchAppUtil.PROP_COUCHDB_SERVERS, servers);

    File folder = generateCouchApp();
    couchAppUtil.writeProperties(folder, properties);

    // check the design doc id
    File idFile = new File(folder, ICouchAppUtil._ID);
    String designDocName = IOUtils.toString(new FileReader(idFile));
    assertEquals("_design/newdesignname", designDocName);

    // check the couchapp name and description
    File couchAppJsonFile = new File(folder, ICouchAppUtil.COUCHAPP_JSON);
    String tanga = IOUtils.toString(new FileReader(couchAppJsonFile));
    Object obj = JSONValue.parse(tanga);
    JSONObject json = (JSONObject) obj;
    String name = json.get("name").toString();
    assertEquals("My CouchApp Name", name);
    String description = json.get("description").toString();
    assertEquals("My CouchApp Description", description);

    // check the couchdb servers
    List<CouchDbServer> couchDbServers = couchAppUtil.getCouchDbServers(folder);
    assertEquals(servers.size(), couchDbServers.size());
    CouchDbServer first = couchDbServers.get(0);
    assertEquals("prod_db", first.getName());
    assertEquals("http://127.0.0.1:5984/prod_db", first.getServer());

    CouchDbServer second = couchDbServers.get(1);
    assertEquals("debug_db", second.getName());
    assertEquals("http://127.0.0.1:5984/debug_db", second.getServer());
  }