Package com.streamreduce.test.service

Source Code of com.streamreduce.test.service.TestUtils

/*
* Copyright 2012 Nodeable Inc
*
*    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 com.streamreduce.test.service;

import com.streamreduce.connections.AuthType;
import com.streamreduce.connections.ConnectionProvidersForTests;
import com.streamreduce.core.model.Account;
import com.streamreduce.core.model.Connection;
import com.streamreduce.core.model.ConnectionCredentials;
import com.streamreduce.core.model.OutboundConfiguration;
import com.streamreduce.core.model.OutboundDataType;
import com.streamreduce.core.model.SobaObject;
import com.streamreduce.core.model.User;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.bson.types.ObjectId;

import java.util.ResourceBundle;


/**
* Collection of static utility methods to create various common model objects.
*/
public class TestUtils {

    public static final String SAMPLE_FEED_FILE_PATH = TestUtils.class.getResource(
            "/com/streamreduce/rss/sample_EC2.rss").toString();


    public static User createTestUser() {
        Account account = new Account.Builder().name("tool").build();
        account.setId(new ObjectId());

        User user = new User.Builder()
                .username("maynard@toolband.com")
                .account(account)
                .password("trollolol")
                .fullname("Maynard James Keenan")
                .build();
        user.setId(new ObjectId());

        return user;
    }

    public static JSONObject createValidSampleIMGPayload() {
        JSONObject json = new JSONObject();
        json.put("name", "generic_test"); // matches connection alias
        json.put("message", "four score and seven years ago...");

        String[] tags = new String[3];
        tags[0] = "#foo";
        tags[1] = "#bar";
        tags[2] = "#baz";
        json.put("tags", tags);

        JSONObject metric = new JSONObject();
        metric.put("name", "metric1");
        metric.put("type", "ABSOLUTE");
        metric.put("value", 42);

        JSONArray metrics = new JSONArray();
        json.put("metrics", metrics);

        return json;
    }

    public static Connection createTestFeedConnection(OutboundDataType... outboundDataTypes) {
        Connection.Builder cb = new Connection.Builder()
                .authType(AuthType.NONE)
                .alias("testFeedConnection")
                .provider(ConnectionProvidersForTests.RSS_PROVIDER)
                .url(SAMPLE_FEED_FILE_PATH)
                .user(createTestUser())
                .visibility(SobaObject.Visibility.ACCOUNT);

        if (outboundDataTypes.length > 0) {
            cb.outboundConfigurations(
                    new OutboundConfiguration.Builder()
                            .credentials(createConnectionCredentialsForAWS())
                            .dataTypes(outboundDataTypes)
                            .protocol("s3")
                            .build()
            ) ;
        }

        Connection c = cb.build();
        c.setId(new ObjectId());

        return c;
    }


    public static Connection createIMGConnectionWithSpecificOutboundDatatypes(OutboundDataType... outboundDataTypes) {
        Connection.Builder cb = new Connection.Builder()
                .authType(AuthType.API_KEY)
                .alias("testIMGConnection")
                .provider(ConnectionProvidersForTests.CUSTOM_PROVIDER)
                .url(SAMPLE_FEED_FILE_PATH)
                .user(createTestUser())
                .visibility(SobaObject.Visibility.ACCOUNT);

        if (outboundDataTypes.length > 0) {
            cb.outboundConfigurations(
                    new OutboundConfiguration.Builder()
                            .credentials(createConnectionCredentialsForAWS())
                            .dataTypes(outboundDataTypes)
                            .protocol("s3")
                            .build()
            ) ;
        }

        Connection connection = cb.build();
        connection.setId(new ObjectId());
        return cb.build();
    }

    public static ConnectionCredentials createConnectionCredentialsForAWS() {
        ResourceBundle cloudProps = ResourceBundle.getBundle("cloud");
        String accessKeyId = cloudProps.getString("nodeable.aws.accessKeyId");
        String secretKey = cloudProps.getString("nodeable.aws.secretKey");
        return new ConnectionCredentials(accessKeyId,secretKey);
    }

    public static Connection createCloudConnection() {
        Connection c = new Connection.Builder()
                .credentials(createConnectionCredentialsForAWS())
                .description("This is Nodeable's AWS cloud.")
                .alias("Nodeable Cloud")
                .provider(ConnectionProvidersForTests.AWS_CLOUD_PROVIDER)
                .user(createTestUser())
                .authType(AuthType.USERNAME_PASSWORD)
                .build();

        c.setId(new ObjectId());

        return c;
    }
}
TOP

Related Classes of com.streamreduce.test.service.TestUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.