| package org.apache.archiva.admin.repository.networkproxy; |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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. |
| */ |
| |
| import org.apache.archiva.admin.model.beans.NetworkProxy; |
| import org.apache.archiva.admin.model.beans.RemoteRepository; |
| import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin; |
| import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest; |
| import org.apache.archiva.metadata.model.facets.AuditEvent; |
| import org.apache.commons.lang3.StringUtils; |
| import org.junit.Test; |
| |
| import javax.inject.Inject; |
| |
| /** |
| * @author Olivier Lamy |
| */ |
| public class NetworkProxyAdminTest |
| extends AbstractRepositoryAdminTest |
| { |
| |
| @Inject |
| private NetworkProxyAdmin networkProxyAdmin; |
| |
| @Test |
| public void getAllEmpty() |
| throws Exception |
| { |
| assertNotNull( networkProxyAdmin.getNetworkProxies() ); |
| } |
| |
| @Test |
| public void addAndDelete() |
| throws Exception |
| { |
| mockAuditListener.clearEvents(); |
| int initialSize = networkProxyAdmin.getNetworkProxies().size(); |
| NetworkProxy networkProxy = getNetworkProxyTest( "foo" ); |
| |
| networkProxyAdmin.addNetworkProxy( networkProxy, getFakeAuditInformation() ); |
| |
| assertEquals( initialSize + 1, networkProxyAdmin.getNetworkProxies().size() ); |
| |
| networkProxy = networkProxyAdmin.getNetworkProxy( "foo" ); |
| |
| assertNotNull( networkProxy ); |
| assertEquals( getNetworkProxyTest( "foo" ).getId(), networkProxy.getId() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getHost(), networkProxy.getHost() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getPassword(), networkProxy.getPassword() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getPort(), networkProxy.getPort() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getUsername(), networkProxy.getUsername() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getProtocol(), networkProxy.getProtocol() ); |
| |
| networkProxyAdmin.deleteNetworkProxy( "foo", getFakeAuditInformation() ); |
| |
| assertNull( networkProxyAdmin.getNetworkProxy( "foo" ) ); |
| |
| assertEquals( 2, mockAuditListener.getAuditEvents().size() ); |
| |
| assertEquals( AuditEvent.ADD_NETWORK_PROXY, mockAuditListener.getAuditEvents().get( 0 ).getAction() ); |
| assertEquals( AuditEvent.DELETE_NETWORK_PROXY, mockAuditListener.getAuditEvents().get( 1 ).getAction() ); |
| |
| mockAuditListener.clearEvents(); |
| } |
| |
| @Test |
| public void addAndUpdateAndDelete() |
| throws Exception |
| { |
| mockAuditListener.clearEvents(); |
| int initialSize = networkProxyAdmin.getNetworkProxies().size(); |
| NetworkProxy networkProxy = getNetworkProxyTest( "foo" ); |
| |
| networkProxyAdmin.addNetworkProxy( networkProxy, getFakeAuditInformation() ); |
| |
| assertEquals( initialSize + 1, networkProxyAdmin.getNetworkProxies().size() ); |
| |
| networkProxy = networkProxyAdmin.getNetworkProxy( "foo" ); |
| |
| assertNotNull( networkProxy ); |
| assertEquals( getNetworkProxyTest( "foo" ).getId(), networkProxy.getId() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getHost(), networkProxy.getHost() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getPassword(), networkProxy.getPassword() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getPort(), networkProxy.getPort() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getUsername(), networkProxy.getUsername() ); |
| assertEquals( getNetworkProxyTest( "foo" ).getProtocol(), networkProxy.getProtocol() ); |
| |
| networkProxy.setHost( "https://toto.com" ); |
| networkProxy.setPassword( "newpasswd" ); |
| networkProxy.setPort( 9191 ); |
| networkProxy.setProtocol( "http" ); |
| networkProxy.setUsername( "newusername" ); |
| |
| networkProxyAdmin.updateNetworkProxy( networkProxy, getFakeAuditInformation() ); |
| |
| NetworkProxy updatedNetworkProxy = networkProxyAdmin.getNetworkProxy( "foo" ); |
| |
| assertNotNull( updatedNetworkProxy ); |
| assertEquals( networkProxy.getId(), updatedNetworkProxy.getId() ); |
| assertEquals( networkProxy.getHost(), updatedNetworkProxy.getHost() ); |
| assertEquals( networkProxy.getPassword(), updatedNetworkProxy.getPassword() ); |
| assertEquals( networkProxy.getPort(), updatedNetworkProxy.getPort() ); |
| assertEquals( networkProxy.getUsername(), updatedNetworkProxy.getUsername() ); |
| assertEquals( networkProxy.getProtocol(), updatedNetworkProxy.getProtocol() ); |
| |
| networkProxyAdmin.deleteNetworkProxy( "foo", getFakeAuditInformation() ); |
| |
| assertEquals( 3, mockAuditListener.getAuditEvents().size() ); |
| |
| assertEquals( AuditEvent.ADD_NETWORK_PROXY, mockAuditListener.getAuditEvents().get( 0 ).getAction() ); |
| assertEquals( AuditEvent.MODIFY_NETWORK_PROXY, mockAuditListener.getAuditEvents().get( 1 ).getAction() ); |
| assertEquals( AuditEvent.DELETE_NETWORK_PROXY, mockAuditListener.getAuditEvents().get( 2 ).getAction() ); |
| |
| mockAuditListener.clearEvents(); |
| } |
| |
| /** |
| * ensure we cleanup remote repos linked to a network proxy |
| */ |
| @Test |
| public void addAndDeleteWithRemoteRepoLinked() |
| throws Exception |
| { |
| mockAuditListener.clearEvents(); |
| int initialSize = networkProxyAdmin.getNetworkProxies().size(); |
| NetworkProxy networkProxy = getNetworkProxyTest( "foo" ); |
| |
| networkProxyAdmin.addNetworkProxy( networkProxy, getFakeAuditInformation() ); |
| |
| assertEquals( initialSize + 1, networkProxyAdmin.getNetworkProxies().size() ); |
| |
| networkProxy = networkProxyAdmin.getNetworkProxy( "foo" ); |
| |
| assertNotNull( networkProxy ); |
| |
| RemoteRepository remoteRepository = getRemoteRepository(); |
| remoteRepository.setRemoteDownloadNetworkProxyId( networkProxy.getId() ); |
| |
| remoteRepositoryAdmin.addRemoteRepository( remoteRepository, getFakeAuditInformation() ); |
| |
| networkProxyAdmin.deleteNetworkProxy( "foo", getFakeAuditInformation() ); |
| |
| remoteRepository = remoteRepositoryAdmin.getRemoteRepository( getRemoteRepository().getId() ); |
| |
| assertTrue(StringUtils.isEmpty(remoteRepository.getRemoteDownloadNetworkProxyId()) ); |
| |
| remoteRepositoryAdmin.deleteRemoteRepository( getRemoteRepository().getId(), getFakeAuditInformation() ); |
| } |
| |
| |
| protected NetworkProxy getNetworkProxyTest( String id ) |
| { |
| NetworkProxy networkProxy = new NetworkProxy(); |
| networkProxy.setId( "foo" ); |
| networkProxy.setHost( "http://foo.com" ); |
| networkProxy.setPassword( "passwd" ); |
| networkProxy.setPort( 9090 ); |
| networkProxy.setUsername( "root" ); |
| networkProxy.setProtocol( "https" ); |
| return networkProxy; |
| } |
| |
| } |