package com.homesnap.webserver; /* * #%L * HomeSnapWebServer * %% * Copyright (C) 2011 - 2016 A. de Giuli * %% * This file is part of HomeSnap done by A. de Giuli (arnaud.degiuli(at)free.fr). * * MyDomo 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. * * MyDomo 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 MyDomo. If not, see <http://www.gnu.org/licenses/>. * #L% */ import org.junit.Assert; import org.junit.Test; import com.homesnap.webserver.rest.house.MissingParameterRestOperation; import com.homesnap.webserver.rest.house.RestOperationException; import com.homesnap.webserver.rest.house.UnsupportedRestOperation; import com.homesnap.webserver.rest.house.parser.ParseException; import com.homesnap.webserver.rest.house.parser.UriParser; public class ParserTest { /* CONTROLLER [/house/labels/labelId/where || /house/groups/groupId/where || /controllers/where] Light: /[on|off] || [?what=on||?what=off] Automation: /[up|down|stop] || [?what=up||?what=down||?what=stop] heating: /[heating_on||heating_off||...status]/dimension?value || [?what=heating_on||heating_off|| ...] => seule la premiere permet de régler les dimensions! HOUSE SERVLER /house GET/DELETE /house/labels GET/DELETE /house/labels/labelId || /house/labels/label?id=id GET/PUT/POST/DELETE /house/labels/labelId/where || /house/labels/labelId/controller?id=id GET/PUT/POST/DELETE /house/groups GET /house/groups/groupId || /house/groups/group?id=id GET /house/groups/groupId/where || /house/groups/groupId/controller?id=id GET GET /house /house/labels /house/labels/labelId || /house/labels/label?id=id /house/labels/labelId/where || /house/labels/labelId/controller?id=id /house/groups /house/groups/groupId /house/groups/groupId/where POST /house/labels/labelId (title=Titre) /house/labels/labelId/where (who=1) PUT /house/labels/labelId?title=Titre /house/labels/labelId/where?who=1 DELETE /house /house/labels /house/labels/labelId || /house/labels/label?id=id /house/labels/labelId/where || /house/labels/labelId/controller?id=id */ @Test public void house() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house GET/DELETE ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house?param=param"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void labelList() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house GET/DELETE ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/labels"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void label() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house/labels/labelId || /house/labels/label?id=id GET/PUT/POST/DELETE ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/labels/ch1"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/labels/label?id=ch1"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void controllerFromLabel() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house/labels/labelId/where || /house/labels/labelId/controller?id=id GET/PUT/POST/DELETE ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/labels/ch1/controller/61"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/labels/ch1/controller?id=61"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/labels/ch1/61"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void groupList() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house/groups GET ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/groups"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void group() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house/groups/groupId || /house/groups/group?id=id GET ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/groups/10"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/groups/group?id=10&status=valeur2"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void controllerFromGroup() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /house/groups/groupId/where || /house/groups/groupId/controller?id=id GET ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/groups/10/controller/12"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/groups/10/controller?id=12"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/groups/10/12"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void controller() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // /controllers/where || /controllers/controller?id=id ListenerExampleParser listener = new ListenerExampleParser(); String uri = "/house/controllers/12"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/controllers/controller?id=12"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); listener = new ListenerExampleParser(); uri = "/house/controllers/controller/12"; UriParser.parse(uri, listener); Assert.assertTrue(listener.success); } @Test public void status() throws ParseException, UnsupportedRestOperation, RestOperationException, MissingParameterRestOperation { // Done by servlet and not by parser => no test with parser } }