Search in sources :

Example 1 with HttpBindingConfig

use of org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig in project openhab1-addons by openhab.

the class HttpGenericBindingProviderTest method testParseBindingConfigForBody.

@Test
public void testParseBindingConfigForBody() throws BindingConfigParseException {
    // method under test
    String bindingConfig = ">[ON:POST:http://www.domain.org:1234/home/lights/23871/?status=on&type=\"text\":Hi]";
    HttpBindingConfig config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(StringType.valueOf("ON")));
    Assert.assertEquals("POST", config.get(StringType.valueOf("ON")).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/?status=on&type=\"text\"", config.get(StringType.valueOf("ON")).url);
    Assert.assertEquals("Hi", config.get(StringType.valueOf("ON")).body);
    // method under test
    bindingConfig = ">[OFF:POST:http://www.domain.org:1234/home/lights/23871/?status=off:Bye]";
    config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(StringType.valueOf("OFF")));
    Assert.assertEquals("POST", config.get(StringType.valueOf("OFF")).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/?status=off", config.get(StringType.valueOf("OFF")).url);
    Assert.assertEquals("Bye", config.get(StringType.valueOf("OFF")).body);
    // method under test
    bindingConfig = ">[CHANGED:POST:http://www.domain.org:1234/home/lights/23871/?value=%2$s:What?]";
    config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.CHANGED_COMMAND_KEY));
    Assert.assertEquals("POST", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/?value=%2$s", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).url);
    Assert.assertEquals("What?", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).body);
    // method under test
    bindingConfig = ">[*:POST:http://www.domain.org:1234/home/lights?value=%2$s:I'm sorry, Dave, I'm afraid I can't do that.]";
    config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY));
    Assert.assertEquals("POST", config.get(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights?value=%2$s", config.get(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY).url);
    Assert.assertEquals("I'm sorry, Dave, I'm afraid I can't do that.", config.get(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY).body);
}
Also used : HttpBindingConfig(org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig) Test(org.junit.Test)

Example 2 with HttpBindingConfig

use of org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig in project openhab1-addons by openhab.

the class HttpGenericBindingProviderTest method testParseBindingConfigWithHTTPHeaders.

@Test
public void testParseBindingConfigWithHTTPHeaders() throws BindingConfigParseException {
    String bindingConfig = ">[ON:POST:http://www.domain.org:1234/home/lights/23871/?status=on&type=\"text\"] >[OFF:GET:http://www.domain.org:1234/home/lights/23871/?status=off{header1=value1&header2=value2}] <[http://www.google.com:1234/ig/api?weather=Krefeld+Germany&hl=de{h=v}:60000:REGEX(.*?<current_conditions>.*?<temp_c data=\\\"(.*?)\\\".*)] >[CHANGED:POST:http://www.domain.org:1234/home/lights/23871/?value=%2$s] >[*:POST:http://www.domain.org:1234/home/lights?value=%2$s]";
    // method under test
    HttpBindingConfig config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.IN_BINDING_KEY));
    Assert.assertEquals(null, config.get(HttpGenericBindingProvider.IN_BINDING_KEY).httpMethod);
    Assert.assertEquals("http://www.google.com:1234/ig/api?weather=Krefeld+Germany&hl=de", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).url);
    Assert.assertEquals("{h=v}", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers.toString());
    Assert.assertEquals(60000, config.get(HttpGenericBindingProvider.IN_BINDING_KEY).refreshInterval);
    Assert.assertEquals("REGEX(.*?<current_conditions>.*?<temp_c data=\"(.*?)\".*)", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).transformation);
    // asserts
    Assert.assertEquals(true, config.containsKey(StringType.valueOf("ON")));
    Assert.assertEquals("POST", config.get(StringType.valueOf("ON")).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/?status=on&type=\"text\"", config.get(StringType.valueOf("ON")).url);
    Assert.assertEquals(true, config.containsKey(StringType.valueOf("OFF")));
    Assert.assertEquals("GET", config.get(StringType.valueOf("OFF")).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/?status=off", config.get(StringType.valueOf("OFF")).url);
    Assert.assertNotNull(config.get(StringType.valueOf("OFF")).headers);
    Assert.assertEquals("{header2=value2, header1=value1}", config.get(StringType.valueOf("OFF")).headers.toString());
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.CHANGED_COMMAND_KEY));
    Assert.assertEquals("POST", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/?value=%2$s", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).url);
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY));
    Assert.assertEquals("POST", config.get(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights?value=%2$s", config.get(HttpGenericBindingProvider.WILDCARD_COMMAND_KEY).url);
}
Also used : HttpBindingConfig(org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig) Test(org.junit.Test)

Example 3 with HttpBindingConfig

use of org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig in project openhab1-addons by openhab.

the class HttpGenericBindingProviderTest method testParseIncomingBindingConfigWithHTTPHeaders.

@Test
public void testParseIncomingBindingConfigWithHTTPHeaders() throws BindingConfigParseException {
    String bindingConfig = "<[http://www.wetter-vista.de/api/xml.php?q=Berlin{header1=value1&header2=value2}:60000:XPATH(/wettervorhersage/tag[1]/tmax)]";
    Item testItem = new DecimalTestItem();
    // method under test
    HttpBindingConfig config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.IN_BINDING_KEY));
    Assert.assertEquals(null, config.get(HttpGenericBindingProvider.IN_BINDING_KEY).httpMethod);
    Assert.assertEquals("http://www.wetter-vista.de/api/xml.php?q=Berlin", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).url);
    Assert.assertEquals(60000, config.get(HttpGenericBindingProvider.IN_BINDING_KEY).refreshInterval);
    Assert.assertEquals("XPATH(/wettervorhersage/tag[1]/tmax)", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).transformation);
    Assert.assertNotNull(config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers);
    Assert.assertEquals("{header2=value2, header1=value1}", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers.toString());
    Assert.assertTrue(config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers.containsKey("header1"));
    Assert.assertTrue(config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers.containsKey("header2"));
    Assert.assertTrue(config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers.contains("value1"));
    Assert.assertTrue(config.get(HttpGenericBindingProvider.IN_BINDING_KEY).headers.contains("value2"));
}
Also used : Item(org.openhab.core.items.Item) GenericItem(org.openhab.core.items.GenericItem) HttpBindingConfig(org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig) Test(org.junit.Test)

Example 4 with HttpBindingConfig

use of org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig in project openhab1-addons by openhab.

the class HttpGenericBindingProviderTest method testParseBindingConfigForBodyWithHeaders.

@Test
public void testParseBindingConfigForBodyWithHeaders() throws BindingConfigParseException {
    // method under test
    String bindingConfig = ">[ON:POST:http://www.domain.org:1234/home/lights/23871/{header1=value1}:Up]";
    HttpBindingConfig config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(StringType.valueOf("ON")));
    Assert.assertEquals("POST", config.get(StringType.valueOf("ON")).httpMethod);
    Assert.assertEquals("http://www.domain.org:1234/home/lights/23871/", config.get(StringType.valueOf("ON")).url);
    Assert.assertEquals("Up", config.get(StringType.valueOf("ON")).body);
    Assert.assertNotNull(config.get(StringType.valueOf("ON")).headers);
    Assert.assertEquals("{header1=value1}", config.get(StringType.valueOf("ON")).headers.toString());
    Assert.assertTrue(config.get(StringType.valueOf("ON")).headers.containsKey("header1"));
    Assert.assertTrue(config.get(StringType.valueOf("ON")).headers.contains("value1"));
}
Also used : HttpBindingConfig(org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig) Test(org.junit.Test)

Example 5 with HttpBindingConfig

use of org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig in project openhab1-addons by openhab.

the class HttpGenericBindingProviderTest method testParseBindingConfig_Roland.

@Test
public void testParseBindingConfig_Roland() throws BindingConfigParseException {
    String bindingConfig = "<[http://localhost:42111/valueget.html?q=4-SWITCHMULTILEVEL-user-byte-1-0:60000:XSLT(value.xsl)] >[CHANGED:POST:http://localhost:42111/valuepost.html?id=4-SWITCHMULTILEVEL-user-byte-1-0&v=39]";
    testItem = new DimmerTestItem();
    // method under test
    HttpBindingConfig config = provider.parseBindingConfig(testItem, bindingConfig);
    // asserts
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.IN_BINDING_KEY));
    Assert.assertEquals(null, config.get(HttpGenericBindingProvider.IN_BINDING_KEY).httpMethod);
    Assert.assertEquals("http://localhost:42111/valueget.html?q=4-SWITCHMULTILEVEL-user-byte-1-0", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).url);
    Assert.assertEquals(60000, config.get(HttpGenericBindingProvider.IN_BINDING_KEY).refreshInterval);
    Assert.assertEquals("XSLT(value.xsl)", config.get(HttpGenericBindingProvider.IN_BINDING_KEY).transformation);
    Assert.assertEquals(true, config.containsKey(HttpGenericBindingProvider.CHANGED_COMMAND_KEY));
    Assert.assertEquals("POST", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).httpMethod);
    Assert.assertEquals("http://localhost:42111/valuepost.html?id=4-SWITCHMULTILEVEL-user-byte-1-0&v=39", config.get(HttpGenericBindingProvider.CHANGED_COMMAND_KEY).url);
}
Also used : HttpBindingConfig(org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)8 HttpBindingConfig (org.openhab.binding.http.internal.HttpGenericBindingProvider.HttpBindingConfig)8 GenericItem (org.openhab.core.items.GenericItem)3 Item (org.openhab.core.items.Item)3