/** * Copyright 2014-2017 Linagora, Université Joseph Fourier, Floralis * * The present code is developed in the scope of the joint LINAGORA - * Université Joseph Fourier - Floralis research program and is designated * as a "Result" pursuant to the terms and conditions of the LINAGORA * - Université Joseph Fourier - Floralis research program. Each copyright * holder of Results enumerated here above fully & independently holds complete * ownership of the complete Intellectual Property rights applicable to the whole * of said Results, and may freely exploit it in any manner which does not infringe * the moral rights of the other copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.roboconf.core.agents; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Properties; import org.junit.Assert; import org.junit.Test; /** * @author Vincent Zurczak - Linagora */ public class DataHelpersTest { public static final String MESSAGING_IP = "messaging.ip"; public static final String MESSAGING_USERNAME = "messaging.username"; public static final String MESSAGING_PASSWORD = "messaging.password"; @Test public void testWriteAndRead() throws Exception { String rawProperties = DataHelpers.writeUserDataAsString( msgCfg("192.168.1.24", "user", "pwd"), "domain", "app", "/root" ); Properties props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( "app", props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( "/root", props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( "192.168.1.24", props.getProperty( MESSAGING_IP )); Assert.assertEquals( "pwd", props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( "user", props.getProperty( MESSAGING_USERNAME )); rawProperties = DataHelpers.writeUserDataAsString( msgCfg(null, "user", "pwd"), "domain", "app", "/root" ); props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( "app", props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( "/root", props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( null, props.getProperty( MESSAGING_IP )); Assert.assertEquals( "pwd", props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( "user", props.getProperty( MESSAGING_USERNAME )); rawProperties = DataHelpers.writeUserDataAsString( msgCfg("192.168.1.24", null, "pwd"), "domain4", "app", "/root" ); props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( "app", props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( "/root", props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain4", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( "192.168.1.24", props.getProperty( MESSAGING_IP )); Assert.assertEquals( "pwd", props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( null, props.getProperty( MESSAGING_USERNAME )); rawProperties = DataHelpers.writeUserDataAsString( msgCfg("192.168.1.24", "user", null), "domain", "app", "root" ); props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( "app", props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( "root", props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( "192.168.1.24", props.getProperty( MESSAGING_IP )); Assert.assertEquals( null, props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( "user", props.getProperty( MESSAGING_USERNAME )); rawProperties = DataHelpers.writeUserDataAsString( msgCfg("192.168.1.24", "user", "pwd"), "domain", null, "root" ); props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( null, props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( "root", props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( "192.168.1.24", props.getProperty( MESSAGING_IP )); Assert.assertEquals( "pwd", props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( "user", props.getProperty( MESSAGING_USERNAME )); rawProperties = DataHelpers.writeUserDataAsString( msgCfg("192.168.1.24", "user", "pwd"), "domain", "app", null ); props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( "app", props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( null, props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( "192.168.1.24", props.getProperty( MESSAGING_IP )); Assert.assertEquals( "pwd", props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( "user", props.getProperty( MESSAGING_USERNAME )); rawProperties = DataHelpers.writeUserDataAsString( msgCfg("192.168.1.24:9120", "user", "pwd"), "domain", "app", null ); props = DataHelpers.readUserData( rawProperties ); Assert.assertEquals( "app", props.getProperty( DataHelpers.APPLICATION_NAME )); Assert.assertEquals( null, props.getProperty( DataHelpers.SCOPED_INSTANCE_PATH )); Assert.assertEquals( "domain", props.getProperty( DataHelpers.DOMAIN )); Assert.assertEquals( "192.168.1.24:9120", props.getProperty( MESSAGING_IP )); Assert.assertEquals( "pwd", props.getProperty( MESSAGING_PASSWORD )); Assert.assertEquals( "user", props.getProperty( MESSAGING_USERNAME )); } /** * Creates a pseudo messaging configuration for the given IP and credentials. * @param ip the pseudo IP address. * @param user the pseudo user. * @param pass the pseudo password. * @return the pseudo messaging configuration. */ private static Map<String, String> msgCfg(String ip, String user, String pass) { Map<String, String> result = new LinkedHashMap<>(); result.put(MESSAGING_IP, ip); result.put(MESSAGING_USERNAME, user); result.put(MESSAGING_PASSWORD, pass); return Collections.unmodifiableMap(result); } }