/* * Syncany, www.syncany.org * Copyright (C) 2011-2015 Philipp C. Heckel <philipp.heckel@gmail.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.syncany.tests.unit.operations.daemon; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.syncany.operations.daemon.messages.GetFileFolderRequest; import org.syncany.operations.daemon.messages.GetFileFolderResponse; import org.syncany.operations.daemon.messages.ListWatchesManagementRequest; import org.syncany.operations.daemon.messages.UpUploadFileSyncExternalEvent; import org.syncany.operations.daemon.messages.api.JsonMessageFactory; import org.syncany.operations.daemon.messages.api.Message; import org.syncany.operations.daemon.messages.api.Request; import org.syncany.operations.daemon.messages.api.Response; public class JsonMessageFactoryTest { @Test public void testJsonToMessageSuccess() throws Exception { Message message = JsonMessageFactory.toMessage("{\"ListWatchesManagementRequest\":{\"id\":\"123\"}}"); assertEquals(ListWatchesManagementRequest.class, message.getClass()); assertEquals(123, ((ListWatchesManagementRequest) message).getId()); } @Test(expected = Exception.class) public void testJsonToMessageFailure() throws Exception { JsonMessageFactory.toMessage("This is invalid!"); } @Test public void testJsonToRequestSuccess() throws Exception { Request request = JsonMessageFactory .toRequest("{\"GetFileFolderRequest\":{\"id\":\"1234\",\"root\":\"/some/path\",\"fileHistoryId\":\"beefbeefbeef\",\"version\":\"1337\"}}"); assertEquals(GetFileFolderRequest.class, request.getClass()); assertEquals(1234, ((GetFileFolderRequest) request).getId()); assertEquals("/some/path", ((GetFileFolderRequest) request).getRoot()); assertEquals("beefbeefbeef", ((GetFileFolderRequest) request).getFileHistoryId()); assertEquals(1337, ((GetFileFolderRequest) request).getVersion()); } @Test public void testJsonToResponseSuccess() throws Exception { Response response = JsonMessageFactory .toResponse("{\"GetFileFolderResponse\":{\"code\":\"200\",\"requestId\":\"1234\",\"root\":\"/some/path\",\"tempFileToken\":\"beefbeefbeef\"}}"); assertEquals(GetFileFolderResponse.class, response.getClass()); assertEquals(200, ((GetFileFolderResponse) response).getCode()); assertEquals((Integer) 1234, ((GetFileFolderResponse) response).getRequestId()); assertEquals("beefbeefbeef", ((GetFileFolderResponse) response).getTempToken()); } @Test public void testRequestToJson() throws Exception { UpUploadFileSyncExternalEvent event = new UpUploadFileSyncExternalEvent("/some/path", "filename.jpg"); String xmlStr = JsonMessageFactory.toJson(event).replaceAll("\\s+", ""); assertEquals("{\"UpUploadFileSyncExternalEvent\":{\"filename\":\"filename.jpg\",\"root\":\"/some/path\"}}", xmlStr); } // TODO [low] Missing tests for the converters }