/****************************************************************************** * Copyright (c) 2012-2015 VMware, Inc. All Rights Reserved. * 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.vmware.bdd.manager; import java.util.ArrayList; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import com.vmware.bdd.apitypes.AppManagerAdd; import com.vmware.bdd.entity.AppManagerEntity; import com.vmware.bdd.exception.SoftwareManagerCollectorException; import com.vmware.bdd.utils.Constants; /** * Created By xiaoliangl on 8/28/14. */ public class TestSoftwareManagerCollector_Utils { private final static String GOOD_CERT = "-----BEGIN CERTIFICATE-----\n" + "MIIDfzCCAmegAwIBAgIED9k4BTANBgkqhkiG9w0BAQsFADBwMRAwDgYDVQQGEwdV\n" + "bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD\n" + "VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRQwEgYDVQQDEwsxMC4xNDEu\n" + "Ny4zNTAeFw0xNDA4MjgwNzQ3MzNaFw0xNTAyMjQwNzQ3MzNaMHAxEDAOBgNVBAYT\n" + "B1Vua25vd24xEDAOBgNVBAgTB1Vua25vd24xEDAOBgNVBAcTB1Vua25vd24xEDAO\n" + "BgNVBAoTB1Vua25vd24xEDAOBgNVBAsTB1Vua25vd24xFDASBgNVBAMTCzEwLjE0\n" + "MS43LjM1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvKToZcD9au16\n" + "CN+Jk6+P9glncMO0Gn62h9V3Q0CU4Vve5oYK2hANfFk0kFaGXrE1qP+IXGBc8Rpi\n" + "ZAlj9jV1Syoqb6NkB8xaTyF2h6g6bCieYAvZObDCI8S5vtEabmGo/abA+wqiDPIv\n" + "LMNwYxhT8+WM7TdTXXd8w22rLIulPefTi4ao/buC18n9Ry0BdhD8yqBa4ZsUPY6r\n" + "xt7j5CmviG17heYSzZvcMx/lH6rqoEtc8v6O0J8FqeG4lxcY1NT6ZUC0z7eXIVFW\n" + "yl983QMf5BFDWDx1lNy/0rpyNjEtE9vAaUUGr78lOYM30qkmM7O5OJCh/3hh9fUw\n" + "wFXhA1nzjQIDAQABoyEwHzAdBgNVHQ4EFgQUWJUGp2QdHNDDWIx/oOQrwG+Hx84w\n" + "DQYJKoZIhvcNAQELBQADggEBAAY5hHIaQ20V4TSb9LapacjIv9UfCM4h263eX/GT\n" + "dl4Urpt5qkONw8v0waJYzx4x2BGjsFFUcIgTaDQ3RFouNPchQ0zouM260zEXMPGt\n" + "NHKgl3r/4V3bEq/an2OK8WqTJUiVLPmIxliQ/A5Tlv1pM6/i8RFsw+sc8ldQtOND\n" + "Sfig9ouhzU/bhT/Bs7xVaVy/wvHGfTmAd2nsOMPfPoIPv+nJmMKRPkJYsGgAvFvh\n" + "yQ1SCDIrtm49CxXDy2LdR88EiHCA+EZooOwvVQgLOzyeNyozOmXk8Ru/YlVfw+dE\n" + "dmgbEbcol0S/wLL9o5VacuVsBQGI22WkzHIHqjkrAT+lHNk=\n" + "-----END CERTIFICATE-----"; private static Object[][] BAD_CERT_DATA = null; static { ArrayList<Object[]> bad_certs = new ArrayList<>(); bad_certs.add(new Object[]{"-----BEGIN CERTIFICATE-----\n" + "-----END CERTIFICATE-----"}); bad_certs.add(new Object[]{""}); bad_certs.add(new Object[]{null}); bad_certs.add(new Object[]{"abcdef"}); bad_certs.add(new Object[]{"MIIDfzCCAmegAwIBAgIED9k4BTANBgkqhkiG9w0BAQsFADBwMRAwDgYDVQQGEwdV\n" + "bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD\n" + "VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRQwEgYDVQQDEwsxMC4xNDEu\n" + "Ny4zNTAeFw0xNDA4MjgwNzQ3MzNaFw0xNTAyMjQwNzQ3MzNaMHAxEDAOBgNVBAYT\n" + "B1Vua25vd24xEDAOBgNVBAgTB1Vua25vd24xEDAOBgNVBAcTB1Vua25vd24xEDAO\n"}); bad_certs.add(new Object[]{"MIIDfzCCAmegAwIBAgIED9k4BTANBgkqhkiG9w0BAQsFADBwMRAwDgYDVQQGEwdV\n" + "bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD\n" + "VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRQwEgYDVQQDEwsxMC4xNDEu\n" + "Ny4zNTAeFw0xNDA4MjgwNzQ3MzNaFw0xNTAyMjQwNzQ3MzNaMHAxEDAOBgNVBAYT\n" + "B1Vua25vd24xEDAOBgNVBAgTB1Vua25v"}); BAD_CERT_DATA = new Object[bad_certs.size()][]; bad_certs.toArray(BAD_CERT_DATA); } @Test public void testSaveCertificate() { SoftwareManagerCollector.saveSslCertificate(GOOD_CERT, "."); } @DataProvider(name = "TestSoftwareManagerCollector.BAD_CERT_DATA") public final Object[][] getBadCertData() { return BAD_CERT_DATA; } @Test(expectedExceptions = SoftwareManagerCollectorException.class, expectedExceptionsMessageRegExp = "Bad certificate.", dataProvider = "TestSoftwareManagerCollector.BAD_CERT_DATA") public void testSaveCertificate1(String badCert) { SoftwareManagerCollector.saveSslCertificate(badCert, "."); } @Test(expectedExceptions = SWMgrCollectorInternalException.class, expectedExceptionsMessageRegExp = "Failed to save SSL certificate to key store.") public void testSaveCertificate3() { SoftwareManagerCollector.saveSslCertificate(GOOD_CERT, "/"); } @Test(expectedExceptions = SWMgrCollectorInternalException.class, expectedExceptionsMessageRegExp = "Failed to read the private key file: key-file.") public void testLoadPrivateKey_Exceptional() { SoftwareManagerCollector.loadPrivateKey("key-file"); } @Test public void testToAppManagerAdd() { AppManagerAdd appManagerAddDefault1 = new AppManagerAdd(); appManagerAddDefault1.setName(Constants.IRONFAN); appManagerAddDefault1.setDescription(Constants.IRONFAN_DESCRIPTION); appManagerAddDefault1.setType(Constants.IRONFAN); appManagerAddDefault1.setUrl("ftp://address"); appManagerAddDefault1.setUsername(""); appManagerAddDefault1.setPassword(""); appManagerAddDefault1.setSslCertificate(""); AppManagerAdd appManagerAdd = SoftwareManagerCollector.toAppManagerAdd(new AppManagerEntity(appManagerAddDefault1)); Assert.assertEquals(appManagerAddDefault1, appManagerAdd); Assert.assertEquals(appManagerAddDefault1.hashCode(), appManagerAdd.hashCode()); } }