de.kopis.glacier.parsers.GlacierUploaderOptionParserTest.java Source code

Java tutorial

Introduction

Here is the source code for de.kopis.glacier.parsers.GlacierUploaderOptionParserTest.java

Source

package de.kopis.glacier.parsers;

/*
 * #%L
 * uploader
 * $Id:$
 * $HeadURL:$
 * %%
 * Copyright (C) 2012 Carsten Ringe
 * %%
 * 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/gpl-3.0.html>.
 * #L%
 */

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.net.MalformedURLException;
import java.util.Arrays;

import joptsimple.OptionSet;

import org.apache.commons.configuration.SystemConfiguration;
import org.junit.Before;
import org.junit.Test;

public class GlacierUploaderOptionParserTest {

    private GlacierUploaderOptionParser optionsParser;
    private String[] args;

    @Before
    public void setUp() {
        optionsParser = new GlacierUploaderOptionParser(new SystemConfiguration());

        args = new String[] { "--vault", "vaultname", "--endpoint", "file:///endpointurl" };
    }

    @Test
    public void acceptsShortcutForVaultOption() {
        final OptionSet optionSet = optionsParser
                .parse(new String[] { "-v", "vaultname", "--endpoint", "file:///endpointurl" });
        assertTrue("Option 'vault' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("vault"));
        assertEquals("Value of option 'vault' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                "vaultname", optionSet.valueOf("vault"));
    }

    @Test
    public void hasRequiredVaultOptionWithName() {
        final OptionSet optionSet = optionsParser.parse(args);
        assertTrue("Option 'vault' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("vault"));
        assertEquals("Value of option 'vault' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                "vaultname", optionSet.valueOf("vault"));
    }

    @Test
    public void hasRequiredEndpointOptionWithUrl() throws MalformedURLException {
        final OptionSet optionSet = optionsParser.parse(args);
        assertTrue("Option 'endpoint' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("endpoint"));
        assertEquals("Value of option 'endpoint' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                "file:///endpointurl", optionSet.valueOf("endpoint"));
    }

    @Test
    public void hasOptionalCredentialsOptionWithFile() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 2);
        newArgs[newArgs.length - 2] = "--credentials";
        newArgs[newArgs.length - 1] = "/path/to/aws.properties";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'credentials' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("credentials"));
        assertEquals(
                "Value of option 'credentials' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                new File("/path/to/aws.properties"), optionSet.valueOf("credentials"));
    }

    @Test
    public void hasActionOptionUpload() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 2);
        newArgs[newArgs.length - 2] = "--upload";
        newArgs[newArgs.length - 1] = "/path/to/file";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'upload' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("upload"));
        assertEquals("Value of option 'upload' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                new File("/path/to/file"), optionSet.valueOf("upload"));
    }

    @Test
    public void hasActionOptionListInventory() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 1);
        newArgs[newArgs.length - 1] = "--list-inventory";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'list-inventory' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("list-inventory"));
    }

    @Test
    public void hasActionOptionListInventoryWithJobId() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 2);
        newArgs[newArgs.length - 2] = "--list-inventory";
        newArgs[newArgs.length - 1] = "inventory-job-id";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'list-inventory' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("list-inventory"));
        if (optionSet.hasArgument(optionsParser.INVENTORY_LISTING)) {
            assertEquals(
                    "Value of option 'list-inventory' not found in "
                            + Arrays.deepToString(optionSet.specs().toArray()),
                    "inventory-job-id", optionSet.valueOf("list-inventory"));
        }
    }

    @Test
    public void hasActionOptionDownload() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 2);
        newArgs[newArgs.length - 2] = "--download";
        newArgs[newArgs.length - 1] = "myarchiveid";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'download' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("download"));
        assertEquals("Value of option 'download' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                "myarchiveid", optionSet.valueOf("download"));
    }

    @Test
    public void hasActionOptionCreateVault() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 1);
        newArgs[newArgs.length - 1] = "--create";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'create' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("create"));
    }

    @Test
    public void hasActionOptionDeleteArchive() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 2);
        newArgs[newArgs.length - 2] = "--delete";
        newArgs[newArgs.length - 1] = "myarchiveid";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'delete' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("delete"));
        assertEquals("Value of option 'delete' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                "myarchiveid", optionSet.valueOf("delete"));
    }

    @Test
    public void hasActionOptionDeleteVault() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 1);
        newArgs[newArgs.length - 1] = "--delete-vault";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'delete-vault' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("delete-vault"));
    }

    @Test
    public void hasActionOptionCalculateHash() {
        final String[] newArgs = Arrays.copyOf(args, args.length + 2);
        newArgs[newArgs.length - 2] = "--calculate";
        newArgs[newArgs.length - 1] = "inventorylisting.txt";

        final OptionSet optionSet = optionsParser.parse(newArgs);
        assertTrue("Option 'calculate' not found in " + Arrays.deepToString(optionSet.specs().toArray()),
                optionSet.has("calculate"));
    }
}