/**
* Copyright (c) 2008-2011 Sonatype, Inc.
* All rights reserved. Includes the third-party code listed at http://www.sonatype.com/products/nexus/attributions.
*
* This program is free software: you can redistribute it and/or modify it only under the terms of the GNU Affero General
* Public License Version 3 as published by the Free Software Foundation.
*
* 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 Affero General Public License Version 3
* for more details.
*
* You should have received a copy of the GNU Affero General Public License Version 3 along with this program. If not, see
* http://www.gnu.org/licenses.
*
* Sonatype Nexus (TM) Open Source Version is available from Sonatype, Inc. Sonatype and Sonatype Nexus are trademarks of
* Sonatype, Inc. Apache Maven is a trademark of the Apache Foundation. M2Eclipse is a trademark of the Eclipse Foundation.
* All other trademarks are the property of their respective owners.
*/
package org.sonatype.nexus.client.model;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.commons.lang.time.DateUtils;
import org.codehaus.plexus.util.StringUtils;
import org.sonatype.nexus.jsecurity.realms.TargetPrivilegeDescriptor;
import org.sonatype.nexus.jsecurity.realms.TargetPrivilegeGroupPropertyDescriptor;
import org.sonatype.nexus.jsecurity.realms.TargetPrivilegeRepositoryPropertyDescriptor;
import org.sonatype.nexus.jsecurity.realms.TargetPrivilegeRepositoryTargetPropertyDescriptor;
import org.sonatype.nexus.proxy.maven.RepositoryPolicy;
import org.sonatype.nexus.proxy.repository.RepositoryWritePolicy;
import org.sonatype.nexus.rest.NexusApplication;
import org.sonatype.nexus.rest.model.ArtifactResolveResource;
import org.sonatype.nexus.rest.model.ArtifactResolveResourceResponse;
import org.sonatype.nexus.rest.model.AuthenticationSettings;
import org.sonatype.nexus.rest.model.ConfigurationsListResource;
import org.sonatype.nexus.rest.model.ConfigurationsListResourceResponse;
import org.sonatype.nexus.rest.model.ContentListDescribeRequestResource;
import org.sonatype.nexus.rest.model.ContentListDescribeResource;
import org.sonatype.nexus.rest.model.ContentListDescribeResourceResponse;
import org.sonatype.nexus.rest.model.ContentListDescribeResponseResource;
import org.sonatype.nexus.rest.model.ContentListResource;
import org.sonatype.nexus.rest.model.ContentListResourceResponse;
import org.sonatype.nexus.rest.model.ErrorReportRequest;
import org.sonatype.nexus.rest.model.ErrorReportRequestDTO;
import org.sonatype.nexus.rest.model.ErrorReportResponse;
import org.sonatype.nexus.rest.model.ErrorReportResponseDTO;
import org.sonatype.nexus.rest.model.ErrorReportingSettings;
import org.sonatype.nexus.rest.model.FeedListResource;
import org.sonatype.nexus.rest.model.FeedListResourceResponse;
import org.sonatype.nexus.rest.model.FormFieldResource;
import org.sonatype.nexus.rest.model.GlobalConfigurationListResource;
import org.sonatype.nexus.rest.model.GlobalConfigurationListResourceResponse;
import org.sonatype.nexus.rest.model.GlobalConfigurationResource;
import org.sonatype.nexus.rest.model.GlobalConfigurationResourceResponse;
import org.sonatype.nexus.rest.model.LogConfigResource;
import org.sonatype.nexus.rest.model.LogConfigResourceResponse;
import org.sonatype.nexus.rest.model.LogsListResource;
import org.sonatype.nexus.rest.model.LogsListResourceResponse;
import org.sonatype.nexus.rest.model.MirrorResource;
import org.sonatype.nexus.rest.model.MirrorResourceListRequest;
import org.sonatype.nexus.rest.model.MirrorResourceListResponse;
import org.sonatype.nexus.rest.model.MirrorStatusResource;
import org.sonatype.nexus.rest.model.MirrorStatusResourceListResponse;
import org.sonatype.nexus.rest.model.NFCRepositoryResource;
import org.sonatype.nexus.rest.model.NFCResource;
import org.sonatype.nexus.rest.model.NFCResourceResponse;
import org.sonatype.nexus.rest.model.NFCStats;
import org.sonatype.nexus.rest.model.NexusAuthenticationClientPermissions;
import org.sonatype.nexus.rest.model.NexusRepositoryTypeListResource;
import org.sonatype.nexus.rest.model.NexusRepositoryTypeListResourceResponse;
import org.sonatype.nexus.rest.model.PlexusComponentListResource;
import org.sonatype.nexus.rest.model.PlexusComponentListResourceResponse;
import org.sonatype.nexus.rest.model.PrivilegeResource;
import org.sonatype.nexus.rest.model.PrivilegeResourceRequest;
import org.sonatype.nexus.rest.model.RemoteConnectionSettings;
import org.sonatype.nexus.rest.model.RemoteHttpProxySettings;
import org.sonatype.nexus.rest.model.RepositoryContentClassListResource;
import org.sonatype.nexus.rest.model.RepositoryContentClassListResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryDependentStatusResource;
import org.sonatype.nexus.rest.model.RepositoryGroupListResource;
import org.sonatype.nexus.rest.model.RepositoryGroupListResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryGroupMemberRepository;
import org.sonatype.nexus.rest.model.RepositoryGroupResource;
import org.sonatype.nexus.rest.model.RepositoryGroupResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryListResource;
import org.sonatype.nexus.rest.model.RepositoryListResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryMetaResource;
import org.sonatype.nexus.rest.model.RepositoryMetaResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryProxyResource;
import org.sonatype.nexus.rest.model.RepositoryResource;
import org.sonatype.nexus.rest.model.RepositoryResourceRemoteStorage;
import org.sonatype.nexus.rest.model.RepositoryResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryRouteListResource;
import org.sonatype.nexus.rest.model.RepositoryRouteListResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryRouteMemberRepository;
import org.sonatype.nexus.rest.model.RepositoryRouteResource;
import org.sonatype.nexus.rest.model.RepositoryRouteResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryShadowResource;
import org.sonatype.nexus.rest.model.RepositoryStatusListResource;
import org.sonatype.nexus.rest.model.RepositoryStatusListResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryStatusResource;
import org.sonatype.nexus.rest.model.RepositoryStatusResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryTargetListResource;
import org.sonatype.nexus.rest.model.RepositoryTargetListResourceResponse;
import org.sonatype.nexus.rest.model.RepositoryTargetResource;
import org.sonatype.nexus.rest.model.RepositoryTargetResourceResponse;
import org.sonatype.nexus.rest.model.RestApiSettings;
import org.sonatype.nexus.rest.model.ScheduledServiceAdvancedResource;
import org.sonatype.nexus.rest.model.ScheduledServiceBaseResource;
import org.sonatype.nexus.rest.model.ScheduledServiceDailyResource;
import org.sonatype.nexus.rest.model.ScheduledServiceListResource;
import org.sonatype.nexus.rest.model.ScheduledServiceListResourceResponse;
import org.sonatype.nexus.rest.model.ScheduledServiceMonthlyResource;
import org.sonatype.nexus.rest.model.ScheduledServiceOnceResource;
import org.sonatype.nexus.rest.model.ScheduledServicePropertyResource;
import org.sonatype.nexus.rest.model.ScheduledServiceResourceResponse;
import org.sonatype.nexus.rest.model.ScheduledServiceResourceStatus;
import org.sonatype.nexus.rest.model.ScheduledServiceResourceStatusResponse;
import org.sonatype.nexus.rest.model.ScheduledServiceTypeResource;
import org.sonatype.nexus.rest.model.ScheduledServiceTypeResourceResponse;
import org.sonatype.nexus.rest.model.ScheduledServiceWeeklyResource;
import org.sonatype.nexus.rest.model.SmtpSettings;
import org.sonatype.nexus.rest.model.SmtpSettingsResource;
import org.sonatype.nexus.rest.model.SmtpSettingsResourceRequest;
import org.sonatype.nexus.rest.model.StatusConfigurationValidationResponse;
import org.sonatype.nexus.rest.model.StatusResource;
import org.sonatype.nexus.rest.model.StatusResourceResponse;
import org.sonatype.nexus.rest.model.WastebasketResource;
import org.sonatype.nexus.rest.model.WastebasketResourceResponse;
import org.sonatype.plexus.rest.resource.error.ErrorMessage;
import org.sonatype.plexus.rest.resource.error.ErrorResponse;
import org.sonatype.plexus.rest.xstream.json.JsonOrgHierarchicalStreamDriver;
import org.sonatype.plexus.rest.xstream.xml.LookAheadXppDriver;
import org.sonatype.security.realms.privileges.application.ApplicationPrivilegeDescriptor;
import org.sonatype.security.realms.privileges.application.ApplicationPrivilegeMethodPropertyDescriptor;
import org.sonatype.security.realms.privileges.application.ApplicationPrivilegePermissionPropertyDescriptor;
import org.sonatype.security.rest.model.AuthenticationClientPermissions;
import org.sonatype.security.rest.model.AuthenticationLoginResource;
import org.sonatype.security.rest.model.AuthenticationLoginResourceResponse;
import org.sonatype.security.rest.model.ClientPermission;
import org.sonatype.security.rest.model.ExternalRoleMappingResource;
import org.sonatype.security.rest.model.ExternalRoleMappingResourceResponse;
import org.sonatype.security.rest.model.PlexusRoleListResourceResponse;
import org.sonatype.security.rest.model.PlexusRoleResource;
import org.sonatype.security.rest.model.PlexusUserListResourceResponse;
import org.sonatype.security.rest.model.PlexusUserResource;
import org.sonatype.security.rest.model.PlexusUserResourceResponse;
import org.sonatype.security.rest.model.PrivilegeListResourceResponse;
import org.sonatype.security.rest.model.PrivilegeProperty;
import org.sonatype.security.rest.model.PrivilegeStatusResource;
import org.sonatype.security.rest.model.PrivilegeStatusResourceResponse;
import org.sonatype.security.rest.model.PrivilegeTypePropertyResource;
import org.sonatype.security.rest.model.PrivilegeTypeResource;
import org.sonatype.security.rest.model.PrivilegeTypeResourceResponse;
import org.sonatype.security.rest.model.RoleListResourceResponse;
import org.sonatype.security.rest.model.RoleResource;
import org.sonatype.security.rest.model.RoleResourceRequest;
import org.sonatype.security.rest.model.RoleResourceResponse;
import org.sonatype.security.rest.model.UserChangePasswordRequest;
import org.sonatype.security.rest.model.UserChangePasswordResource;
import org.sonatype.security.rest.model.UserForgotPasswordRequest;
import org.sonatype.security.rest.model.UserForgotPasswordResource;
import org.sonatype.security.rest.model.UserListResourceResponse;
import org.sonatype.security.rest.model.UserResource;
import org.sonatype.security.rest.model.UserResourceRequest;
import org.sonatype.security.rest.model.UserResourceResponse;
import org.sonatype.security.rest.model.UserToRoleResource;
import org.sonatype.security.rest.model.UserToRoleResourceRequest;
import com.thoughtworks.xstream.XStream;
public class TestMarshalUnmarchal
extends TestCase
{
private SimpleDateFormat dateFormat = new SimpleDateFormat( "MM/dd/yyyy" );
private XStream xstreamXML;
private XStream xstreamJSON;
@Override
protected void setUp()
throws Exception
{
super.setUp();
NexusApplication napp = new NexusApplication();
xstreamXML = napp.doConfigureXstream( new XStream( new LookAheadXppDriver() ) );
xstreamJSON = napp.doConfigureXstream( new XStream( new JsonOrgHierarchicalStreamDriver() ) );
}
protected XStream getXmlXStream()
{
return xstreamXML;
}
protected XStream getJsonXStream()
{
return xstreamJSON;
}
public void testErrorResponse()
{
ErrorResponse errorResponse = new ErrorResponse();
ErrorMessage error = new ErrorMessage();
error.setId( "ID" );
error.setMsg( "Error Message" );
errorResponse.addError( error );
this.marshalUnmarchalThenCompare( errorResponse );
// System.out.println( "JSON:\n" + this.xstreamJSON.toXML( errorResponse ));
// System.out.println( "XML:\n" + this.xstreamXML.toXML( errorResponse ));
this.validateXmlHasNoPackageNames( errorResponse );
}
public void testContentListDescribeResourceResponse()
throws ParseException
{
ContentListDescribeResource resource = new ContentListDescribeResource();
resource.setProcessingTimeMillis( 1000 );
resource.setRequestUrl( "requesturl" );
ContentListDescribeRequestResource requestRes = new ContentListDescribeRequestResource();
// TODO: Figure out why this is causing test to fail.
// requestRes.setRequestContext( Arrays.asList( "item1", "item2" ) );
requestRes.setRequestPath( "requestpath" );
requestRes.setRequestUrl( "requestUrl" );
resource.setRequest( requestRes );
ContentListDescribeResponseResource responseRes = new ContentListDescribeResponseResource();
// TODO: Figure out why this is causing test to fail.
// responseRes.setAppliedMappings( Arrays.asList( "map1", "map2" ) );
// TODO: Figure out why this is causing test to fail.
// responseRes.setAttributes( Arrays.asList( "attr1", "attr2" ) );
responseRes.setOriginatingRepositoryId( "originatingRepoId" );
responseRes.setOriginatingRepositoryMainFacet( "mainfacet" );
responseRes.setOriginatingRepositoryName( "name" );
// TODO: Figure out why this is causing test to fail.
// responseRes.setProcessedRepositoriesList( Arrays.asList( "proc1", "proc2" ) );
// TODO: Figure out why this is causing test to fail.
// responseRes.setProperties( Arrays.asList( "prop1", "prop2" ) );
responseRes.setResponseActualClass( "actualclass" );
responseRes.setResponsePath( "responsepath" );
responseRes.setResponseType( "responseType" );
responseRes.setResponseUid( "responseuid" );
// TODO: Figure out why this is causing test to fail.
// responseRes.setSources( Arrays.asList( "source1", "source2" ) );
resource.setResponse( responseRes );
ContentListDescribeResourceResponse response = new ContentListDescribeResourceResponse();
response.setData( resource );
// TODO: UNCOMMENT ME WHEN JSON DRIVER IS FIXED, SO LONGS CAN BE HANDLED!!
// this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testContentListResourceResponse()
throws ParseException
{
ContentListResourceResponse responseResponse = new ContentListResourceResponse();
ContentListResource resource1 = new ContentListResource();
resource1.setLastModified( this.dateFormat.parse( "01/01/2001" ) );
resource1.setLeaf( false );
resource1.setRelativePath( "relativePath1" );
resource1.setResourceURI( "resourceURI1" );
resource1.setSizeOnDisk( 41 );
resource1.setText( "resource1" );
ContentListResource resource2 = new ContentListResource();
resource2.setLastModified( this.dateFormat.parse( "01/01/2002" ) );
resource2.setLeaf( true );
resource2.setRelativePath( "relativePath2" );
resource2.setResourceURI( "resourceURI2" );
resource2.setSizeOnDisk( 42 );
resource2.setText( "resource2" );
ContentListResource resource3 = new ContentListResource();
resource3.setLastModified( this.dateFormat.parse( "01/01/2003" ) );
resource3.setLeaf( true );
resource3.setRelativePath( "relativePath3" );
resource3.setResourceURI( "resourceURI3" );
resource3.setSizeOnDisk( 43 );
resource3.setText( "resource3" );
responseResponse.addData( resource1 );
responseResponse.addData( resource2 );
this.marshalUnmarchalThenCompare( responseResponse, this.xstreamXML ); // FIXME: JSON READER CANNOT PARSE DATES
// CORRECTLY.
this.validateXmlHasNoPackageNames( responseResponse );
}
public void testRepositoryResource()
{
RepositoryResource repo = new RepositoryResource();
repo.setId( "createTestRepo" );
repo.setRepoType( "hosted" );
repo.setName( "Create Test Repo" );
repo.setFormat( "maven2" );
repo.setWritePolicy( RepositoryWritePolicy.ALLOW_WRITE.name() );
repo.setBrowseable( true );
repo.setIndexable( true );
repo.setNotFoundCacheTTL( 1440 );
repo.setRepoPolicy( RepositoryPolicy.RELEASE.name() );
repo.setDownloadRemoteIndexes( true );
repo.setChecksumPolicy( "IGNORE" );
repo.setContentResourceURI( "contentResourceURI" );
repo.setDefaultLocalStorageUrl( "defaultlocalstorage" );
repo.setExposed( true );
repo.setOverrideLocalStorageUrl( "overridelocalstorage" );
repo.setProvider( "provider" );
repo.setProviderRole( "providerRole" );
RepositoryResourceRemoteStorage remoteStorage = new RepositoryResourceRemoteStorage();
remoteStorage.setRemoteStorageUrl( "remoteStorageUrl" );
AuthenticationSettings auth = new AuthenticationSettings();
auth.setNtlmDomain( "ntlmdomain" );
auth.setNtlmHost( "ntmlhost" );
auth.setPassword( "password" );
auth.setUsername( "username" );
remoteStorage.setAuthentication( auth );
RemoteConnectionSettings connection = new RemoteConnectionSettings();
connection.setConnectionTimeout( 50 );
connection.setQueryString( "querystring" );
connection.setRetrievalRetryCount( 5 );
connection.setUserAgentString( "useragent" );
remoteStorage.setConnectionSettings( connection );
RemoteHttpProxySettings proxy = new RemoteHttpProxySettings();
proxy.setAuthentication( auth );
proxy.setProxyHostname( "proxyhost" );
proxy.setProxyPort( 55 );
remoteStorage.setHttpProxySettings( proxy );
repo.setRemoteStorage( remoteStorage );
RepositoryResourceResponse resourceResponse = new RepositoryResourceResponse();
resourceResponse.setData( repo );
this.marshalUnmarchalThenCompare( resourceResponse );
// this.marshalUnmarchalThenCompare( resourceResponse, xstreamJSON );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryShadowResource()
{
RepositoryShadowResource repo = new RepositoryShadowResource();
repo.setId( "createTestRepo" );
repo.setRepoType( "virtual" );
repo.setName( "Create Test Repo" );
repo.setFormat( "maven2" );
repo.setShadowOf( "Shadow Of" );
repo.setSyncAtStartup( true );
repo.setContentResourceURI( "contentResourceURI" );
repo.setExposed( true );
repo.setProvider( "provider" );
repo.setProviderRole( "providerrole" );
RepositoryResourceResponse resourceResponse = new RepositoryResourceResponse();
resourceResponse.setData( repo );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryProxyResource()
{
RepositoryProxyResource repo = new RepositoryProxyResource();
repo.setId( "createTestRepo" );
repo.setRepoType( "proxy" );
repo.setName( "Create Test Repo" );
repo.setFormat( "maven2" );
repo.setWritePolicy( RepositoryWritePolicy.ALLOW_WRITE.name() );
repo.setBrowseable( true );
repo.setIndexable( true );
repo.setNotFoundCacheTTL( 1440 );
repo.setRepoPolicy( RepositoryPolicy.RELEASE.name() );
repo.setDownloadRemoteIndexes( true );
repo.setChecksumPolicy( "IGNORE" );
repo.setMetadataMaxAge( 42 );
repo.setArtifactMaxAge( 41 );
repo.setContentResourceURI( "contentResourceURI" );
repo.setDefaultLocalStorageUrl( "defaultlocalstorage" );
repo.setExposed( true );
repo.setOverrideLocalStorageUrl( "overridelocalstorage" );
repo.setProvider( "provider" );
repo.setProviderRole( "providerRole" );
RepositoryResourceRemoteStorage remoteStorage = new RepositoryResourceRemoteStorage();
remoteStorage.setRemoteStorageUrl( "remoteStorageUrl" );
AuthenticationSettings auth = new AuthenticationSettings();
auth.setNtlmDomain( "ntlmdomain" );
auth.setNtlmHost( "ntmlhost" );
auth.setPassword( "password" );
auth.setUsername( "username" );
remoteStorage.setAuthentication( auth );
RemoteConnectionSettings connection = new RemoteConnectionSettings();
connection.setConnectionTimeout( 50 );
connection.setQueryString( "querystring" );
connection.setRetrievalRetryCount( 5 );
connection.setUserAgentString( "useragent" );
remoteStorage.setConnectionSettings( connection );
RemoteHttpProxySettings proxy = new RemoteHttpProxySettings();
proxy.setAuthentication( auth );
proxy.setProxyHostname( "proxyhost" );
proxy.setProxyPort( 55 );
remoteStorage.setHttpProxySettings( proxy );
repo.setRemoteStorage( remoteStorage );
RepositoryResourceResponse resourceResponse = new RepositoryResourceResponse();
resourceResponse.setData( repo );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryListResourceResponse()
{
RepositoryListResourceResponse listResourceResponse = new RepositoryListResourceResponse();
RepositoryListResource listResource1 = new RepositoryListResource();
listResource1.setId( "item1" );
listResource1.setFormat( "maven2" );
listResource1.setEffectiveLocalStorageUrl( "effectiveLocalStorageUrl1" );
listResource1.setName( "name1" );
listResource1.setRemoteUri( "remoteUri1" );
listResource1.setRepoPolicy( "remotePolicy1" );
listResource1.setRepoType( "hosted" );
listResource1.setResourceURI( "resourceURI1" );
listResource1.setContentResourceURI( "contentResourceUri1" );
listResource1.setExposed( true );
listResource1.setProvider( "provider1" );
listResource1.setProviderRole( "providerRole1" );
listResource1.setUserManaged( true );
listResourceResponse.addData( listResource1 );
RepositoryListResource listResource2 = new RepositoryListResource();
listResource2.setId( "item2" );
listResource2.setFormat( "maven2" );
listResource2.setEffectiveLocalStorageUrl( "effectiveLocalStorageUrl2" );
listResource2.setName( "name2" );
listResource2.setRemoteUri( "remoteUri2" );
listResource2.setRepoPolicy( "remotePolicy2" );
listResource2.setRepoType( "virtual" );
listResource2.setResourceURI( "resourceURI2" );
listResource2.setContentResourceURI( "contentResourceUri2" );
listResource2.setExposed( true );
listResource2.setProvider( "provider2" );
listResource2.setProviderRole( "providerRole2" );
listResource2.setUserManaged( true );
listResourceResponse.addData( listResource2 );
this.marshalUnmarchalThenCompare( listResourceResponse );
this.validateXmlHasNoPackageNames( listResourceResponse );
}
public void testRepositoryStatusResourceResponse()
{
RepositoryStatusResourceResponse resourceResponse = new RepositoryStatusResourceResponse();
RepositoryStatusResource resource = new RepositoryStatusResource();
resource.setFormat( "maven1" );
resource.setId( "resource" );
resource.setLocalStatus( "localStatus" );
resource.setProxyMode( "proxyMode" );
resource.setRepoType( "repoType" );
resource.setRemoteStatus( "remoteStatus" );
RepositoryDependentStatusResource dep = new RepositoryDependentStatusResource();
dep.setFormat( "maven4" );
dep.setId( "someid" );
dep.setLocalStatus( "somestatus" );
dep.setRepoType( "type" );
resource.addDependentRepo( dep );
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryStatusListResourceResponse()
{
RepositoryStatusListResourceResponse resourceResponse = new RepositoryStatusListResourceResponse();
RepositoryStatusListResource listResource1 = new RepositoryStatusListResource();
listResource1.setFormat( "maven1" );
listResource1.setId( "item1" );
listResource1.setName( "name1" );
listResource1.setRepoPolicy( "repoPolicy1" );
listResource1.setRepoType( "repoType1" );
listResource1.setResourceURI( "resourceURI" );
RepositoryStatusResource statusResource1 = new RepositoryStatusResource();
statusResource1.setFormat( "maven1" );
statusResource1.setId( "status1" );
statusResource1.setLocalStatus( "localStatus1" );
statusResource1.setProxyMode( "proxyMode" );
statusResource1.setRemoteStatus( "remoteStatus" );
statusResource1.setRepoType( "repoType" );
listResource1.setStatus( statusResource1 );
RepositoryStatusListResource listResource2 = new RepositoryStatusListResource();
listResource2.setFormat( "maven1" );
listResource2.setId( "item2" );
listResource2.setName( "name2" );
listResource2.setRepoPolicy( "repoPolicy2" );
listResource2.setRepoType( "repoType2" );
listResource2.setResourceURI( "resourceURI" );
RepositoryStatusResource statusResource2 = new RepositoryStatusResource();
statusResource2.setFormat( "maven1" );
statusResource2.setId( "status1" );
statusResource2.setLocalStatus( "localStatus1" );
statusResource2.setProxyMode( "proxyMode" );
statusResource2.setRemoteStatus( "remoteStatus" );
statusResource2.setRepoType( "repoType" );
listResource2.setStatus( statusResource2 );
resourceResponse.addData( listResource1 );
resourceResponse.addData( listResource2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryMetaResourceResponse()
{
RepositoryMetaResourceResponse resourceResponse = new RepositoryMetaResourceResponse();
RepositoryMetaResource metaResource = new RepositoryMetaResource();
metaResource.setFileCountInRepository( 1000 );
metaResource.setFormat( "format" );
metaResource.setFreeSpaceOnDisk( 55 );
metaResource.setId( "metaResource" );
metaResource.setLocalStorageErrorsCount( 7 );
metaResource.setNotFoundCacheHits( 2 );
metaResource.setNotFoundCacheMisses( 3 );
metaResource.setNotFoundCacheSize( 4 );
metaResource.setRemoteStorageErrorsCount( 9 );
metaResource.setRepoType( "repoType" );
metaResource.setSizeOnDisk( 42 );
metaResource.setGroups( Arrays.asList( "group1", "group2" ) );
resourceResponse.setData( metaResource );
this.marshalUnmarchalThenCompare( resourceResponse, this.xstreamXML ); // FIXME: Need some sort of type map, for
// the json reader to figure out if some
// fields are longs not ints.
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryGroupListResourceResponse()
{
RepositoryGroupListResourceResponse resourceResponse = new RepositoryGroupListResourceResponse();
RepositoryGroupListResource listItem1 = new RepositoryGroupListResource();
listItem1.setFormat( "format" );
listItem1.setId( "id" );
listItem1.setName( "name" );
listItem1.setResourceURI( "resourceURI" );
listItem1.setContentResourceURI( "contentResourceURI" );
listItem1.setExposed( true );
RepositoryGroupListResource listItem2 = new RepositoryGroupListResource();
listItem2.setFormat( "format2" );
listItem2.setId( "id2" );
listItem2.setName( "name2" );
listItem2.setResourceURI( "resourceURI2" );
listItem2.setContentResourceURI( "contentResourceURI2" );
listItem2.setExposed( true );
resourceResponse.addData( listItem1 );
resourceResponse.addData( listItem2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryGroupResourceResponse()
{
RepositoryGroupResourceResponse resourceResponse = new RepositoryGroupResourceResponse();
RepositoryGroupResource groupResource = new RepositoryGroupResource();
groupResource.setFormat( "format" );
groupResource.setId( "groupResource" );
groupResource.setName( "name" );
groupResource.setContentResourceURI( "contentResourceURI" );
groupResource.setExposed( true );
groupResource.setProvider( "provider" );
groupResource.setProviderRole( "providerRole" );
groupResource.setRepoType( "group" );
RepositoryGroupMemberRepository memberRepo1 = new RepositoryGroupMemberRepository();
memberRepo1.setId( "memberRepo1" );
memberRepo1.setName( "memberRepo1" );
memberRepo1.setResourceURI( "memberRepoURI1" );
RepositoryGroupMemberRepository memberRepo2 = new RepositoryGroupMemberRepository();
memberRepo2.setId( "memberRepo2" );
memberRepo2.setName( "memberRepo2" );
memberRepo2.setResourceURI( "memberRepoURI2" );
groupResource.addRepository( memberRepo1 );
groupResource.addRepository( memberRepo2 );
resourceResponse.setData( groupResource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryRouteListResourceResponse()
{
RepositoryRouteListResourceResponse resourceResponse = new RepositoryRouteListResourceResponse();
RepositoryRouteListResource item1 = new RepositoryRouteListResource();
item1.setGroupId( "id1" );
item1.setPattern( "pattern1" );
item1.setResourceURI( "resourceURI1" );
item1.setRuleType( "ruleType1" );
RepositoryRouteMemberRepository memberRepository1 = new RepositoryRouteMemberRepository();
memberRepository1.setId( "member1" );
memberRepository1.setName( "memberRepository1" );
memberRepository1.setResourceURI( "memberRepositoryURI1" );
item1.addRepository( memberRepository1 );
RepositoryRouteMemberRepository memberRepository2 = new RepositoryRouteMemberRepository();
memberRepository2.setId( "member2" );
memberRepository2.setName( "memberRepository2" );
memberRepository2.setResourceURI( "memberRepositoryURI2" );
item1.addRepository( memberRepository2 );
RepositoryRouteListResource item2 = new RepositoryRouteListResource();
item2.setGroupId( "id2" );
item2.setPattern( "pattern2" );
item2.setResourceURI( "resourceURI2" );
item2.setRuleType( "ruleType2" );
RepositoryRouteMemberRepository memberRepository3 = new RepositoryRouteMemberRepository();
memberRepository3.setId( "member3" );
memberRepository3.setName( "memberRepository3" );
memberRepository3.setResourceURI( "memberRepositoryURI3" );
item2.addRepository( memberRepository3 );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryRouteResourceResponse()
{
RepositoryRouteResourceResponse resourceResponse = new RepositoryRouteResourceResponse();
RepositoryRouteResource resource = new RepositoryRouteResource();
resource.setGroupId( "groupId" );
resource.setId( "id" );
resource.setPattern( "pattern" );
resource.setRuleType( "ruleType" );
RepositoryRouteMemberRepository memberRepository1 = new RepositoryRouteMemberRepository();
memberRepository1.setId( "member1" );
memberRepository1.setName( "memberRepository1" );
memberRepository1.setResourceURI( "memberRepositoryURI1" );
resource.addRepository( memberRepository1 );
RepositoryRouteMemberRepository memberRepository2 = new RepositoryRouteMemberRepository();
memberRepository2.setId( "member2" );
memberRepository2.setName( "memberRepository2" );
memberRepository2.setResourceURI( "memberRepositoryURI2" );
resource.addRepository( memberRepository2 );
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testGlobalConfigurationListResourceResponse()
{
GlobalConfigurationListResourceResponse resourceResponse = new GlobalConfigurationListResourceResponse();
GlobalConfigurationListResource resource1 = new GlobalConfigurationListResource();
resource1.setName( "name1" );
resource1.setResourceURI( "resourceURI1" );
GlobalConfigurationListResource resource2 = new GlobalConfigurationListResource();
resource2.setName( "name1" );
resource2.setResourceURI( "resourceURI1" );
resourceResponse.addData( resource1 );
resourceResponse.addData( resource2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testGlobalConfigurationResourceResponse()
{
GlobalConfigurationResourceResponse resourceResponse = new GlobalConfigurationResourceResponse();
GlobalConfigurationResource resource = new GlobalConfigurationResource();
resource.setSecurityAnonymousAccessEnabled( true );
resource.setSecurityAnonymousPassword( "anonPass" );
resource.setSecurityAnonymousUsername( "anonUser" );
resource.setSecurityEnabled( true );
// TODO: Figure out why this is causing test to fail...
// resource.setSecurityRealms( Arrays.asList( "realm1", "realm2" ) );
RestApiSettings restSet = new RestApiSettings();
restSet.setBaseUrl( "baseUrl" );
restSet.setForceBaseUrl( false );
resource.setGlobalRestApiSettings( restSet );
RemoteConnectionSettings connSet = new RemoteConnectionSettings();
connSet.setConnectionTimeout( 2 );
connSet.setQueryString( "queryString" );
connSet.setRetrievalRetryCount( 6 );
connSet.setUserAgentString( "userAgentString" );
resource.setGlobalConnectionSettings( connSet );
RemoteHttpProxySettings proxySet = new RemoteHttpProxySettings();
proxySet.setProxyHostname( "proxyHostname" );
proxySet.setProxyPort( 78 );
AuthenticationSettings authSet = new AuthenticationSettings();
authSet.setNtlmDomain( "ntlmDomain" );
authSet.setNtlmHost( "ntlmHost" );
authSet.setPassword( "password" );
authSet.setUsername( "username" );
proxySet.setAuthentication( authSet );
resource.setGlobalHttpProxySettings( proxySet );
SmtpSettings smtpSet = new SmtpSettings();
smtpSet.setHost( "host" );
smtpSet.setPassword( "password" );
smtpSet.setPort( 42 );
smtpSet.setSslEnabled( true );
smtpSet.setSystemEmailAddress( "foo@bar.com" );
smtpSet.setTlsEnabled( true );
smtpSet.setUsername( "username" );
resource.setSmtpSettings( smtpSet );
ErrorReportingSettings errorSet = new ErrorReportingSettings();
errorSet.setJiraPassword( "jiraPass" );
errorSet.setJiraUsername( "jiraUser" );
errorSet.setUseGlobalProxy( true );
resource.setErrorReportingSettings( errorSet );
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testWastebasketResourceResponse()
{
WastebasketResourceResponse resourceResponse = new WastebasketResourceResponse();
WastebasketResource resource = new WastebasketResource();
resource.setItemCount( 1000 );
resource.setSize( 42 );
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse, this.xstreamXML ); // FIXME: Need some sort of type map, for
// the json reader to figure out if some
// fields are longs not ints.
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testLogsListResourceResponse()
{
LogsListResourceResponse resourceResponse = new LogsListResourceResponse();
LogsListResource item1 = new LogsListResource();
item1.setMimeType( "mimeType1" );
item1.setName( "name1" );
item1.setResourceURI( "resourceURI1" );
item1.setSize( 42 );
LogsListResource item2 = new LogsListResource();
item2.setMimeType( "mimeType2" );
item2.setName( "name2" );
item2.setResourceURI( "resourceURI2" );
item2.setSize( 42 );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse, this.xstreamXML ); // FIXME: Need some sort of type map, for
// the json reader to figure out if some
// fields are longs not ints.
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testConfigurationsListResourceResponse()
{
ConfigurationsListResourceResponse resourceResponse = new ConfigurationsListResourceResponse();
ConfigurationsListResource item1 = new ConfigurationsListResource();
item1.setName( "name1" );
item1.setResourceURI( "resourceURI1" );
ConfigurationsListResource item2 = new ConfigurationsListResource();
item2.setName( "name2" );
item2.setResourceURI( "resourceURI2" );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testFeedListResourceResponse()
{
FeedListResourceResponse resourceResponse = new FeedListResourceResponse();
FeedListResource item1 = new FeedListResource();
item1.setName( "feed1" );
item1.setResourceURI( "resourceURI1" );
FeedListResource item2 = new FeedListResource();
item2.setName( "feed2" );
item2.setResourceURI( "resourceURI2" );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testAuthenticationLoginResourceResponse()
{
AuthenticationLoginResourceResponse resourceResponse = new AuthenticationLoginResourceResponse();
AuthenticationLoginResource loginResource = new AuthenticationLoginResource();
AuthenticationClientPermissions perms = new AuthenticationClientPermissions();
ClientPermission permission = new ClientPermission();
permission.setId( "id" );
permission.setValue( 5 );
perms.addPermission( permission );
perms.setLoggedIn( true );
perms.setLoggedInUsername( "fred" );
loginResource.setClientPermissions( perms );
resourceResponse.setData( loginResource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testStatusResourceResponse()
throws ParseException
{
StatusResourceResponse resourceResponse = new StatusResourceResponse();
StatusResource status = new StatusResource();
NexusAuthenticationClientPermissions perms = new NexusAuthenticationClientPermissions();
ClientPermission permission = new ClientPermission();
permission.setId( "id" );
permission.setValue( 5 );
perms.addPermission( permission );
perms.setLoggedIn( true );
perms.setLoggedInUsername( "fred" );
perms.setLoggedInUserSource( "source" );
status.setClientPermissions( perms );
status.setConfigurationUpgraded( true );
status.setErrorCause( "errorCause" );
status.setFirstStart( true );
status.setInitializedAt( this.dateFormat.parse( "01/01/2001" ) );
status.setInstanceUpgraded( true );
status.setLastConfigChange( this.dateFormat.parse( "01/01/2002" ) );
status.setOperationMode( "operationMode" );
status.setStartedAt( this.dateFormat.parse( "01/01/2003" ) );
status.setState( "STATE" );
status.setVersion( "version" );
status.setApiVersion( "apiversion" );
status.setAppName( "appname" );
status.setBaseUrl( "baseurl" );
status.setEditionLong( "long edition name" );
status.setEditionShort( "short" );
status.setFormattedAppName( "formatted" );
StatusConfigurationValidationResponse validation = new StatusConfigurationValidationResponse();
validation.setModified( true );
validation.setValid( true );
validation.addValidationError( "error1" );
validation.addValidationError( "error2" );
validation.addValidationWarning( "warning1" );
validation.addValidationWarning( "warning2" );
status.setConfigurationValidationResponse( validation );
resourceResponse.setData( status );
this.marshalUnmarchalThenCompare( resourceResponse, this.xstreamXML ); // FIXME: JSON READER CANNOT PARSE DATES
// CORRECTLY.
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceListResourceResponse()
{
ScheduledServiceListResourceResponse resourceResponse = new ScheduledServiceListResourceResponse();
ScheduledServiceListResource item1 = new ScheduledServiceListResource();
item1.setCreated( "created1" );
item1.setEnabled( true );
item1.setId( "id1" );
item1.setLastRunResult( "result1" );
item1.setLastRunTime( "Time" );
item1.setName( "name1" );
item1.setNextRunTime( "nextRunTime1" );
item1.setResourceURI( "resourceURI1" );
item1.setSchedule( "schedule1" );
item1.setStatus( "status1" );
item1.setTypeId( "typeId1" );
item1.setTypeName( "typeName1" );
resourceResponse.addData( item1 );
ScheduledServiceListResource item2 = new ScheduledServiceListResource();
item2.setCreated( "created2" );
item2.setEnabled( true );
item2.setId( "id2" );
item2.setLastRunResult( "result2" );
item2.setLastRunTime( "Time2" );
item2.setName( "name2" );
item2.setNextRunTime( "nextRunTime2" );
item2.setResourceURI( "resourceURI2" );
item2.setSchedule( "schedule2" );
item2.setStatus( "status2" );
item2.setTypeId( "typeId2" );
item2.setTypeName( "typeName2" );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceResourceStatusResponse()
{
ScheduledServiceResourceStatus status = new ScheduledServiceResourceStatus();
status.setCreated( "created" );
status.setLastRunResult( "lastrunresult" );
status.setLastRunTime( "lastruntime" );
status.setNextRunTime( "nextruntime" );
status.setResourceURI( "resourceuri" );
status.setStatus( "status" );
ScheduledServiceBaseResource base = new ScheduledServiceBaseResource();
base.setId( "Id" );
base.setSchedule( "manual" );
base.setTypeId( "TypeId" );
base.setName( "Name" );
base.setAlertEmail( "foo@bar.org" );
base.setEnabled( true );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
base.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
base.addProperty( prop2 );
status.setResource( base );
ScheduledServiceResourceStatusResponse resource = new ScheduledServiceResourceStatusResponse();
resource.setData( status );
this.marshalUnmarchalThenCompare( resource );
this.validateXmlHasNoPackageNames( resource );
}
public void testScheduledServiceBaseResource()
{
ScheduledServiceBaseResource resource = new ScheduledServiceBaseResource();
resource.setId( "Id" );
resource.setSchedule( "manual" );
resource.setTypeId( "TypeId" );
resource.setName( "Name" );
resource.setAlertEmail( "foo@bar.org" );
resource.setEnabled( true );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
resource.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
resource.addProperty( prop2 );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceOnceResource()
{
ScheduledServiceOnceResource resource = new ScheduledServiceOnceResource();
resource.setStartDate( "StartDate" );
resource.setStartTime( "StartTime" );
resource.setId( "Id" );
resource.setSchedule( "once" );
resource.setTypeId( "TypeId" );
resource.setAlertEmail( "foo@bar.org" );
resource.setName( "Name" );
resource.setEnabled( true );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
resource.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
resource.addProperty( prop2 );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceDailyResource()
{
ScheduledServiceDailyResource resource = new ScheduledServiceDailyResource();
resource.setStartDate( "StartDate" );
resource.setId( "Id" );
resource.setSchedule( "daily" );
resource.setTypeId( "TypeId" );
resource.setAlertEmail( "foo@bar.org" );
resource.setName( "Name" );
resource.setEnabled( true );
resource.setRecurringTime( "recurringTime" );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
resource.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
resource.addProperty( prop2 );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceAdvancedResource()
{
ScheduledServiceAdvancedResource resource = new ScheduledServiceAdvancedResource();
resource.setId( "Id" );
resource.setSchedule( "advanced" );
resource.setTypeId( "TypeId" );
resource.setAlertEmail( "foo@bar.org" );
resource.setName( "Name" );
resource.setEnabled( true );
resource.setCronCommand( "cronCommand" );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
resource.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
resource.addProperty( prop2 );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceMonthlyResource()
{
ScheduledServiceMonthlyResource resource = new ScheduledServiceMonthlyResource();
resource.setId( "Id" );
resource.setSchedule( "monthly" );
resource.setTypeId( "TypeId" );
resource.setAlertEmail( "foo@bar.org" );
resource.setName( "Name" );
resource.setEnabled( true );
resource.setRecurringTime( "recurringTime" );
resource.addRecurringDay( "recurringDay1" );
resource.addRecurringDay( "recurringDay2" );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
resource.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
resource.addProperty( prop2 );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceWeeklyResource()
{
ScheduledServiceWeeklyResource resource = new ScheduledServiceWeeklyResource();
resource.setId( "Id" );
resource.setSchedule( "weekly" );
resource.setTypeId( "TypeId" );
resource.setAlertEmail( "foo@bar.org" );
resource.setName( "Name" );
resource.setEnabled( true );
resource.setRecurringTime( "recurringTime" );
resource.addRecurringDay( "recurringDay1" );
resource.addRecurringDay( "recurringDay2" );
ScheduledServicePropertyResource prop1 = new ScheduledServicePropertyResource();
prop1.setKey( "id1" );
prop1.setValue( "value1" );
resource.addProperty( prop1 );
ScheduledServicePropertyResource prop2 = new ScheduledServicePropertyResource();
prop2.setKey( "id2" );
prop2.setValue( "value2" );
resource.addProperty( prop2 );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testScheduledServiceTypeResourceResponse()
{
ScheduledServiceTypeResourceResponse resourceResponse = new ScheduledServiceTypeResourceResponse();
ScheduledServiceTypeResource item1 = new ScheduledServiceTypeResource();
item1.setId( "id1" );
item1.setName( "name1" );
FormFieldResource prop1 = new FormFieldResource();
prop1.setHelpText( "helpText1" );
prop1.setId( "id1" );
prop1.setLabel( "name1" );
prop1.setRequired( true );
prop1.setType( "type1" );
prop1.setRegexValidation( "regex" );
item1.addFormField( prop1 );
FormFieldResource prop2 = new FormFieldResource();
prop2.setHelpText( "helpText2" );
prop2.setId( "id2" );
prop2.setLabel( "name2" );
prop2.setRequired( true );
prop2.setType( "type2" );
prop2.setRegexValidation( "regex2" );
item1.addFormField( prop2 );
ScheduledServiceTypeResource item2 = new ScheduledServiceTypeResource();
item2.setId( "id1" );
item2.setName( "name1" );
FormFieldResource prop3 = new FormFieldResource();
prop3.setHelpText( "helpText3" );
prop3.setId( "id3" );
prop3.setLabel( "name3" );
prop3.setRequired( true );
prop3.setType( "type3" );
prop3.setRegexValidation( "regex3" );
item2.addFormField( prop3 );
FormFieldResource prop4 = new FormFieldResource();
prop4.setHelpText( "helpText4" );
prop4.setId( "id4" );
prop4.setLabel( "name4" );
prop4.setRequired( true );
prop4.setType( "type4" );
prop4.setRegexValidation( "regex4" );
item2.addFormField( prop4 );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testUserListResourceResponse()
{
UserListResourceResponse resourceResponse = new UserListResourceResponse();
UserResource user1 = new UserResource();
user1.setResourceURI( "ResourceURI1" );
user1.setEmail( "Email1" );
user1.setUserId( "UserId1" );
user1.setFirstName( "Name1" );
user1.setStatus( "Status1" );
user1.addRole( "role1" );
user1.addRole( "role2" );
resourceResponse.addData( user1 );
UserResource user2 = new UserResource();
user2.setResourceURI( "ResourceURI2" );
user2.setEmail( "Email2" );
user2.setUserId( "UserId2" );
user2.setFirstName( "Name2" );
user2.setStatus( "Status2" );
user2.addRole( "role3" );
user2.addRole( "role4" );
resourceResponse.addData( user2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testUserResourceRequest()
{
UserResourceRequest resourceRequest = new UserResourceRequest();
UserResource user1 = new UserResource();
user1.setResourceURI( "ResourceURI1" );
user1.setEmail( "Email1" );
user1.setUserId( "UserId1" );
user1.setFirstName( "Name1" );
user1.setStatus( "Status1" );
user1.addRole( "role1" );
user1.addRole( "role2" );
resourceRequest.setData( user1 );
this.marshalUnmarchalThenCompare( resourceRequest );
this.validateXmlHasNoPackageNames( resourceRequest );
}
public void testUserResourceResponse()
{
UserResourceResponse resourceResponse = new UserResourceResponse();
UserResource user1 = new UserResource();
user1.setResourceURI( "ResourceURI1" );
user1.setEmail( "Email1" );
user1.setUserId( "UserId1" );
user1.setFirstName( "Name1" );
user1.setStatus( "Status1" );
user1.addRole( "role1" );
user1.addRole( "role2" );
resourceResponse.setData( user1 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testUserForgotPasswordRequest()
{
UserForgotPasswordRequest request = new UserForgotPasswordRequest();
UserForgotPasswordResource resource = new UserForgotPasswordResource();
resource.setEmail( "email" );
resource.setUserId( "userId" );
request.setData( resource );
this.marshalUnmarchalThenCompare( request );
this.validateXmlHasNoPackageNames( request );
}
public void testUserChangePasswordRequest()
{
UserChangePasswordRequest request = new UserChangePasswordRequest();
UserChangePasswordResource resource = new UserChangePasswordResource();
resource.setNewPassword( "newPassword" );
resource.setOldPassword( "oldPassword" );
resource.setUserId( "userId" );
request.setData( resource );
this.marshalUnmarchalThenCompare( request );
this.validateXmlHasNoPackageNames( request );
}
public void testRoleListResourceResponse()
{
RoleListResourceResponse resourceResponse = new RoleListResourceResponse();
RoleResource item1 = new RoleResource();
item1.setId( "Id1" );
item1.setResourceURI( "ResourceURI1" );
item1.addPrivilege( "privilege1" );
item1.addPrivilege( "privilege2" );
item1.addRole( "role1" );
item1.addRole( "role2" );
item1.setSessionTimeout( 42 );
item1.setName( "Name1" );
item1.setDescription( "Description1" );
resourceResponse.addData( item1 );
RoleResource item2 = new RoleResource();
item2.setId( "Id2" );
item2.setResourceURI( "ResourceURI2" );
item2.addPrivilege( "privilege3" );
item2.addPrivilege( "privilege4" );
item2.addRole( "role4" );
item2.addRole( "role3" );
item2.setSessionTimeout( 42 );
item2.setName( "Name2" );
item2.setDescription( "Description2" );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRoleResourceRequest()
{
RoleResourceRequest resourceRequest = new RoleResourceRequest();
RoleResource item1 = new RoleResource();
item1.setId( "Id1" );
item1.setResourceURI( "ResourceURI1" );
item1.addPrivilege( "privilege1" );
item1.addPrivilege( "privilege2" );
item1.addRole( "role1" );
item1.addRole( "role2" );
item1.setSessionTimeout( 42 );
item1.setName( "Name1" );
item1.setDescription( "Description1" );
resourceRequest.setData( item1 );
this.marshalUnmarchalThenCompare( resourceRequest );
this.validateXmlHasNoPackageNames( resourceRequest );
}
public void testRoleResourceResponse()
{
RoleResourceResponse resourceResponse = new RoleResourceResponse();
RoleResource item1 = new RoleResource();
item1.setId( "Id1" );
item1.setResourceURI( "ResourceURI1" );
item1.addPrivilege( "privilege1" );
item1.addPrivilege( "privilege2" );
item1.addRole( "role1" );
item1.addRole( "role2" );
item1.setSessionTimeout( 42 );
item1.setName( "Name1" );
item1.setDescription( "Description1" );
resourceResponse.setData( item1 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testPrivilegeTargetResource()
{
PrivilegeResourceRequest resourceRequest = new PrivilegeResourceRequest();
PrivilegeResource resource = new PrivilegeResource();
resource.setRepositoryGroupId( "RepositoryGroupId" );
resource.setRepositoryId( "RepositoryId" );
resource.setRepositoryTargetId( "RepositoryTargetId" );
resource.setName( "Name" );
resource.addMethod( "Method1" );
resource.addMethod( "Method2" );
resource.setDescription( "Description" );
resource.setType( "target" );
resourceRequest.setData( resource );
this.marshalUnmarchalThenCompare( resourceRequest );
this.validateXmlHasNoPackageNames( resourceRequest );
}
public void testPrivilegeListResourceResponse()
{
PrivilegeListResourceResponse resourceResponse = new PrivilegeListResourceResponse();
PrivilegeStatusResource appResource1 = new PrivilegeStatusResource();
appResource1.setId( "Id1" );
appResource1.setResourceURI( "ResourceURI1" );
appResource1.setName( "Name1" );
appResource1.setDescription( "Description1" );
appResource1.setType( ApplicationPrivilegeDescriptor.TYPE );
PrivilegeProperty prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegeMethodPropertyDescriptor.ID );
prop.setValue( "Method1" );
appResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegePermissionPropertyDescriptor.ID );
prop.setValue( "Permission1" );
appResource1.addProperty( prop );
PrivilegeStatusResource appResource2 = new PrivilegeStatusResource();
appResource2.setId( "Id2" );
appResource2.setResourceURI( "ResourceURI2" );
appResource2.setName( "Name2" );
appResource2.setDescription( "Description2" );
appResource2.setType( ApplicationPrivilegeDescriptor.TYPE );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegeMethodPropertyDescriptor.ID );
prop.setValue( "Method2" );
appResource2.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegePermissionPropertyDescriptor.ID );
prop.setValue( "Permission2" );
appResource2.addProperty( prop );
PrivilegeStatusResource targetResource1 = new PrivilegeStatusResource();
targetResource1.setId( "Id1" );
targetResource1.setResourceURI( "ResourceURI1" );
targetResource1.setName( "Name1" );
targetResource1.setDescription( "Description1" );
targetResource1.setType( TargetPrivilegeDescriptor.TYPE );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeGroupPropertyDescriptor.ID );
prop.setValue( "RepositoryGroupId1" );
targetResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeRepositoryPropertyDescriptor.ID );
prop.setValue( "RepositoryId1" );
targetResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeRepositoryTargetPropertyDescriptor.ID );
prop.setValue( "RepositoryTargetId1" );
targetResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegeMethodPropertyDescriptor.ID );
prop.setValue( "Method1" );
targetResource1.addProperty( prop );
PrivilegeStatusResource targetResource2 = new PrivilegeStatusResource();
targetResource2.setId( "Id2" );
targetResource2.setResourceURI( "ResourceURI2" );
targetResource2.setName( "Name2" );
targetResource2.setDescription( "Description2" );
targetResource2.setType( TargetPrivilegeDescriptor.TYPE );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeGroupPropertyDescriptor.ID );
prop.setValue( "RepositoryGroupId2" );
targetResource2.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeRepositoryPropertyDescriptor.ID );
prop.setValue( "RepositoryId2" );
targetResource2.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeRepositoryTargetPropertyDescriptor.ID );
prop.setValue( "RepositoryTargetId2" );
targetResource2.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegeMethodPropertyDescriptor.ID );
prop.setValue( "Method2" );
targetResource2.addProperty( prop );
resourceResponse.addData( appResource1 );
resourceResponse.addData( targetResource1 );
resourceResponse.addData( appResource2 );
resourceResponse.addData( targetResource2 );
this.marshalUnmarchalThenCompare( resourceResponse, this.xstreamXML ); // FIXME: list of multiple objects would
// need a converter
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testPrivilegeStatusResource()
{
PrivilegeStatusResource appResource1 = new PrivilegeStatusResource();
appResource1.setId( "Id1" );
appResource1.setResourceURI( "ResourceURI1" );
appResource1.setName( "Name1" );
appResource1.setDescription( "Description1" );
appResource1.setType( ApplicationPrivilegeDescriptor.TYPE );
PrivilegeProperty prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegePermissionPropertyDescriptor.ID );
prop.setValue( "Permission1" );
appResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegeMethodPropertyDescriptor.ID );
prop.setValue( "Method1" );
appResource1.addProperty( prop );
PrivilegeStatusResourceResponse resourceResponse = new PrivilegeStatusResourceResponse();
resourceResponse.setData( appResource1 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
PrivilegeStatusResource targetResource1 = new PrivilegeStatusResource();
targetResource1.setId( "Id1" );
targetResource1.setResourceURI( "ResourceURI1" );
targetResource1.setName( "Name1" );
targetResource1.setDescription( "Description1" );
targetResource1.setType( TargetPrivilegeDescriptor.TYPE );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeGroupPropertyDescriptor.ID );
prop.setValue( "RepositoryGroupId1" );
targetResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeRepositoryPropertyDescriptor.ID );
prop.setValue( "RepositoryId1" );
targetResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( TargetPrivilegeRepositoryTargetPropertyDescriptor.ID );
prop.setValue( "RepositoryTargetId1" );
targetResource1.addProperty( prop );
prop = new PrivilegeProperty();
prop.setKey( ApplicationPrivilegeMethodPropertyDescriptor.ID );
prop.setValue( "Method1" );
targetResource1.addProperty( prop );
resourceResponse = new PrivilegeStatusResourceResponse();
resourceResponse.setData( targetResource1 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testPrivilegeTypeResourceResponse()
{
PrivilegeTypeResourceResponse response = new PrivilegeTypeResourceResponse();
PrivilegeTypeResource type = new PrivilegeTypeResource();
type.setId( "id1" );
type.setName( "name1" );
PrivilegeTypePropertyResource property = new PrivilegeTypePropertyResource();
property.setId( "id1" );
property.setName( "name1" );
property.setHelpText( "help1" );
type.addProperty( property );
property = new PrivilegeTypePropertyResource();
property.setId( "id2" );
property.setName( "name2" );
property.setHelpText( "help2" );
type.addProperty( property );
response.addData( type );
type = new PrivilegeTypeResource();
type.setId( "id2" );
type.setName( "name2" );
property = new PrivilegeTypePropertyResource();
property.setId( "id3" );
property.setName( "name3" );
property.setHelpText( "help3" );
type.addProperty( property );
property = new PrivilegeTypePropertyResource();
property.setId( "id4" );
property.setName( "name4" );
property.setHelpText( "help4" );
type.addProperty( property );
response.addData( type );
this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testNFCResourceResponse()
{
NFCResourceResponse resourceResponse = new NFCResourceResponse();
NFCRepositoryResource nfcRepoResource1 = new NFCRepositoryResource();
nfcRepoResource1.setRepositoryId( "repoId1" );
nfcRepoResource1.addNfcPath( "path1" );
nfcRepoResource1.addNfcPath( "path2" );
NFCStats stats = new NFCStats();
stats.setHits( 1000 );
stats.setMisses( 5000 );
stats.setSize( 44 );
nfcRepoResource1.setNfcStats( stats );
NFCRepositoryResource nfcRepoResource2 = new NFCRepositoryResource();
nfcRepoResource2.setRepositoryId( "repoId2" );
nfcRepoResource2.addNfcPath( "path3" );
nfcRepoResource2.addNfcPath( "path4" );
NFCStats stats2 = new NFCStats();
stats2.setHits( 1000 );
stats2.setMisses( 5000 );
stats2.setSize( 44 );
nfcRepoResource2.setNfcStats( stats2 );
NFCResource resource = new NFCResource();
resource.addNfcContent( nfcRepoResource1 );
resource.addNfcContent( nfcRepoResource2 );
resourceResponse.setData( resource );
// Excluded because our damn json reader doesn't support parsing long values...very very bad
// this.marshalUnmarchalThenCompare( resourceResponse );
// TODO: UNCOMMENT this when the json driver is fixed.
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryTargetListResourceResponse()
{
RepositoryTargetListResourceResponse resourceResponse = new RepositoryTargetListResourceResponse();
RepositoryTargetListResource item1 = new RepositoryTargetListResource();
item1.setContentClass( "contentClass1" );
item1.setId( "id1" );
item1.setName( "name1" );
item1.setResourceURI( "resourceURI1" );
RepositoryTargetListResource item2 = new RepositoryTargetListResource();
item2.setId( "Id2" );
item2.setResourceURI( "ResourceURI2" );
item2.setContentClass( "ContentClass2" );
item2.setName( "Name2" );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryTargetResourceResponse()
{
RepositoryTargetResourceResponse resourceResponse = new RepositoryTargetResourceResponse();
RepositoryTargetResource resource = new RepositoryTargetResource();
resource.setId( "Id" );
resource.setResourceURI( "ResourceURI" );
resource.setContentClass( "ContentClass" );
resource.setName( "Name" );
resource.addPattern( "pattern1" );
resource.addPattern( "pattern2" );
resourceResponse.setData( resource );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testRepositoryContentClassListResourceResponse()
{
RepositoryContentClassListResourceResponse resourceResponse = new RepositoryContentClassListResourceResponse();
RepositoryContentClassListResource item1 = new RepositoryContentClassListResource();
item1.setContentClass( "ContentClass1" );
item1.setName( "Name1" );
RepositoryContentClassListResource item2 = new RepositoryContentClassListResource();
item2.setContentClass( "ContentClass2" );
item2.setName( "Name2" );
resourceResponse.addData( item1 );
resourceResponse.addData( item2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void onHold()
{
ScheduledServiceWeeklyResource scheduledTask = new ScheduledServiceWeeklyResource();
scheduledTask.setSchedule( "weekly" );
scheduledTask.setEnabled( true );
scheduledTask.setId( null );
scheduledTask.setName( "taskOnce" );
// A future date
Date startDate = DateUtils.addDays( new Date(), 10 );
startDate = DateUtils.round( startDate, Calendar.DAY_OF_MONTH );
scheduledTask.setStartDate( String.valueOf( startDate.getTime() ) );
scheduledTask.setRecurringTime( "03:30" );
// scheduledTask.setRecurringDay( Arrays.asList( new String[] { "monday", "wednesday", "friday" } ) );
scheduledTask.addRecurringDay( "monday" );
scheduledTask.addRecurringDay( "wednesday" );
scheduledTask.addRecurringDay( "friday" );
scheduledTask.setTypeId( "org.sonatype.nexus.tasks.RepairIndexTask" );
scheduledTask.setAlertEmail( "foo@bar.org" );
ScheduledServicePropertyResource prop = new ScheduledServicePropertyResource();
prop.setKey( "repositoryId" );
prop.setValue( "all_repo" );
scheduledTask.addProperty( prop );
ScheduledServiceResourceResponse resourceResponse = new ScheduledServiceResourceResponse();
resourceResponse.setData( scheduledTask );
// System.out.println( "xml:\n"+ this.xstreamXML.toXML( resourceResponse ) );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testUserToRoleResourceRequest()
{
UserToRoleResourceRequest resourceResponse = new UserToRoleResourceRequest();
UserToRoleResource resource = new UserToRoleResource();
resourceResponse.setData( resource );
resource.setUserId( "userId" );
resource.setSource( "source" );
resource.addRole( "role1" );
resource.addRole( "role2" );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testPlexusUserResourceResponse()
{
PlexusUserResourceResponse resourceResponse = new PlexusUserResourceResponse();
PlexusUserResource resource = new PlexusUserResource();
resourceResponse.setData( resource );
resource.setUserId( "userId" );
resource.setSource( "source" );
resource.setEmail( "email" );
PlexusRoleResource role1 = new PlexusRoleResource();
role1.setName( "role1" );
role1.setSource( "source1" );
role1.setRoleId( "roleId1" );
resource.addRole( role1 );
PlexusRoleResource role2 = new PlexusRoleResource();
role2.setName( "role2" );
role2.setSource( "source2" );
role2.setRoleId( "roleId2" );
resource.addRole( role2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testPlexusUserListResourceResponse()
{
PlexusUserListResourceResponse resourceResponse = new PlexusUserListResourceResponse();
PlexusUserResource resource1 = new PlexusUserResource();
resourceResponse.addData( resource1 );
resource1.setUserId( "userId" );
resource1.setSource( "source" );
resource1.setEmail( "email" );
PlexusRoleResource role1 = new PlexusRoleResource();
role1.setName( "role1" );
role1.setSource( "source1" );
role1.setRoleId( "roleId1" );
resource1.addRole( role1 );
PlexusRoleResource role2 = new PlexusRoleResource();
role1.setName( "role2" );
role1.setSource( "source2" );
role1.setRoleId( "roleId2" );
resource1.addRole( role2 );
PlexusUserResource resource2 = new PlexusUserResource();
resourceResponse.addData( resource2 );
resource2.setUserId( "userId" );
resource2.setSource( "source" );
resource2.setEmail( "email" );
PlexusRoleResource role3 = new PlexusRoleResource();
role3.setName( "role1" );
role3.setSource( "source1" );
role3.setRoleId( "roleId1" );
resource2.addRole( role3 );
PlexusRoleResource role4 = new PlexusRoleResource();
role4.setName( "role2" );
role4.setSource( "source2" );
role4.setRoleId( "roleId2" );
resource2.addRole( role4 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testLogConfigResourceResponse()
{
LogConfigResourceResponse response = new LogConfigResourceResponse();
LogConfigResource data = new LogConfigResource();
data.setFileAppenderLocation( "fileappender" );
data.setFileAppenderPattern( "pattern" );
data.setRootLoggerAppenders( "rootlogger" );
data.setRootLoggerLevel( "level" );
response.setData( data );
this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testMirrorResourceListResponse()
{
MirrorResourceListResponse response = new MirrorResourceListResponse();
MirrorResource data = new MirrorResource();
data.setId( "id" );
data.setUrl( "url" );
response.addData( data );
MirrorResource data2 = new MirrorResource();
data2.setId( "id2" );
data2.setUrl( "url2" );
response.addData( data2 );
this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testMirrorResourceListRequest()
{
MirrorResourceListRequest response = new MirrorResourceListRequest();
MirrorResource data = new MirrorResource();
data.setId( "id" );
data.setUrl( "url" );
response.addData( data );
MirrorResource data2 = new MirrorResource();
data2.setId( "id2" );
data2.setUrl( "url2" );
response.addData( data2 );
this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testMirrorStatusResourceListResponse()
{
MirrorStatusResourceListResponse response = new MirrorStatusResourceListResponse();
MirrorStatusResource data = new MirrorStatusResource();
data.setId( "id" );
data.setUrl( "url" );
data.setStatus( "status" );
response.addData( data );
MirrorStatusResource data2 = new MirrorStatusResource();
data2.setId( "id2" );
data2.setUrl( "url2" );
data2.setStatus( "status2" );
response.addData( data2 );
this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testSmtpSettingsResourceRequest()
{
SmtpSettingsResourceRequest request = new SmtpSettingsResourceRequest();
SmtpSettingsResource resource = new SmtpSettingsResource();
resource.setHost( "host" );
resource.setPassword( "password" );
resource.setPort( 55 );
resource.setSslEnabled( true );
resource.setSystemEmailAddress( "systememail" );
resource.setTestEmail( "testemail" );
resource.setTlsEnabled( true );
resource.setUsername( "username" );
request.setData( resource );
this.marshalUnmarchalThenCompare( request );
this.validateXmlHasNoPackageNames( request );
}
public void testErrorReportRequest()
{
ErrorReportRequest request = new ErrorReportRequest();
ErrorReportRequestDTO resource = new ErrorReportRequestDTO();
resource.setDescription( "description" );
resource.setTitle( "title" );
request.setData( resource );
this.marshalUnmarchalThenCompare( request );
this.validateXmlHasNoPackageNames( request );
}
public void testErrorReportResponse()
{
ErrorReportResponse request = new ErrorReportResponse();
ErrorReportResponseDTO resource = new ErrorReportResponseDTO();
resource.setJiraUrl( "jiraurl" );
request.setData( resource );
this.marshalUnmarchalThenCompare( request );
this.validateXmlHasNoPackageNames( request );
}
public void testArtifactResolveResourceResponse()
{
ArtifactResolveResourceResponse response = new ArtifactResolveResourceResponse();
ArtifactResolveResource data = new ArtifactResolveResource();
data.setArtifactId( "artifactId" );
data.setBaseVersion( "baseversion" );
data.setClassifier( "classifier" );
data.setExtension( "extension" );
data.setFileName( "filename" );
data.setGroupId( "groupid" );
data.setRepositoryPath( "repopath" );
data.setSha1( "sha1" );
data.setSnapshot( true );
data.setSnapshotBuildNumber( 100 );
data.setSnapshotTimeStamp( 12345 );
data.setVersion( "version" );
response.setData( data );
// Exclude because json reader doesn't properly handle long values...
// this.marshalUnmarchalThenCompare( response );
// TODO: UNCOMMENT ME WHEN JSON DRIVER IS FIXED
this.validateXmlHasNoPackageNames( response );
}
public void testNexusRepositoryTypeListResourceResponse()
{
NexusRepositoryTypeListResourceResponse response = new NexusRepositoryTypeListResourceResponse();
NexusRepositoryTypeListResource resource = new NexusRepositoryTypeListResource();
resource.setDescription( "description" );
resource.setFormat( "format" );
resource.setProvider( "provider" );
resource.setProviderRole( "providerRole" );
response.addData( resource );
NexusRepositoryTypeListResource resource2 = new NexusRepositoryTypeListResource();
resource2.setDescription( "description2" );
resource2.setFormat( "format2" );
resource2.setProvider( "provider2" );
resource2.setProviderRole( "providerRole2" );
response.addData( resource2 );
this.marshalUnmarchalThenCompare( response );
this.validateXmlHasNoPackageNames( response );
}
public void testPlexusComponentListResourceResponse()
{
PlexusComponentListResourceResponse resourceResponse = new PlexusComponentListResourceResponse();
PlexusComponentListResource resource1 = new PlexusComponentListResource();
resource1.setDescription( "description1" );
resource1.setRoleHint( "role-hint1" );
resourceResponse.addData( resource1 );
PlexusComponentListResource resource2 = new PlexusComponentListResource();
resource2.setDescription( "description2" );
resource2.setRoleHint( "role-hint2" );
resourceResponse.addData( resource2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testExternalRoleMappingResourceResponse()
{
ExternalRoleMappingResourceResponse resourceResponse = new ExternalRoleMappingResourceResponse();
ExternalRoleMappingResource resource1 = new ExternalRoleMappingResource();
resourceResponse.addData( resource1 );
PlexusRoleResource role1 = new PlexusRoleResource();
role1.setName( "role1" );
role1.setSource( "source1" );
role1.setRoleId( "roleId1" );
resource1.setDefaultRole( role1 );
PlexusRoleResource role2 = new PlexusRoleResource();
role2.setName( "role2" );
role2.setSource( "source2" );
role2.setRoleId( "roleId2" );
resource1.addMappedRole( role2 );
PlexusRoleResource role3 = new PlexusRoleResource();
role3.setName( "role3" );
role3.setSource( "source3" );
role3.setRoleId( "roleId3" );
resource1.addMappedRole( role3 );
ExternalRoleMappingResource resource2 = new ExternalRoleMappingResource();
resourceResponse.addData( resource2 );
PlexusRoleResource role4 = new PlexusRoleResource();
role4.setName( "role4" );
role4.setSource( "source4" );
role4.setRoleId( "roleId4" );
resource2.setDefaultRole( role4 );
PlexusRoleResource role5 = new PlexusRoleResource();
role5.setName( "role5" );
role5.setSource( "source5" );
role5.setRoleId( "roleId5" );
resource2.addMappedRole( role5 );
PlexusRoleResource role6 = new PlexusRoleResource();
role6.setName( "role6" );
role6.setSource( "source6" );
role6.setRoleId( "roleId6" );
resource2.addMappedRole( role6 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
public void testPlexusRoleListPlexusResource()
{
PlexusRoleListResourceResponse resourceResponse = new PlexusRoleListResourceResponse();
PlexusRoleResource role1 = new PlexusRoleResource();
role1.setName( "role1" );
role1.setSource( "source1" );
role1.setRoleId( "roleId1" );
resourceResponse.addData( role1 );
PlexusRoleResource role2 = new PlexusRoleResource();
role2.setName( "role2" );
role2.setSource( "source2" );
role2.setRoleId( "roleId2" );
resourceResponse.addData( role2 );
this.marshalUnmarchalThenCompare( resourceResponse );
this.validateXmlHasNoPackageNames( resourceResponse );
}
protected void marshalUnmarchalThenCompare( Object obj )
{
// do xml
String xml = this.xstreamXML.toXML( obj );
System.out.println( "xml: \n" + xml );
this.compareObjects( obj, xstreamXML.fromXML( xml ) );
// do json
String json =
new StringBuffer( "{ \"" ).append( obj.getClass().getName() ).append( "\" : " ).append( this.xstreamJSON.toXML( obj ) ).append( " }" ).toString();
System.out.println( "json:\n " + json );
try
{
this.compareObjects( obj, xstreamJSON.fromXML( json, obj.getClass().newInstance() ) );
}
catch ( Exception e )
{
e.printStackTrace();
Assert.fail( e.getMessage() + "\nJSON:\n" + json );
}
}
protected void marshalUnmarchalThenCompare( Object obj, XStream xstream )
{
String xml = xstream.toXML( obj );
this.compareObjects( obj, xstream.fromXML( xml ) );
}
protected void validateXmlHasNoPackageNames( Object obj )
{
String xml = this.xstreamXML.toXML( obj );
// quick way of looking for the class="org attribute
// i don't want to parse a dom to figure this out
int totalCount = StringUtils.countMatches( xml, "org.sonatype" );
int attributeCount = StringUtils.countMatches( xml, "\"org.sonatype" );
// check the counts
Assert.assertFalse( "Found package name in XML:\n" + xml, totalCount > 0 );
// // print out each type of method, so i can rafb it
// System.out.println( "\n\nClass: "+ obj.getClass() +"\n" );
// System.out.println( xml+"\n" );
//
// Assert.assertFalse( "Found <string> XML: " + obj.getClass() + "\n" + xml, xml.contains( "<string>" ) );
// also check for modelEncoding
Assert.assertFalse( xml.contains( "modelEncoding" ) );
}
private String toDebugString( Object obj )
{
return ToStringBuilder.reflectionToString( obj, ToStringStyle.MULTI_LINE_STYLE );
}
private void compareObjects( Object expected, Object actual )
{
// ignore the modelEncoding field
String[] ignoredFields = { "modelEncoding" };
if ( !DeepEqualsBuilder.reflectionDeepEquals( expected, actual, false, null, ignoredFields ) )
{
// Print out the objects so we can compare them if it fails.
Assert.fail( "Expected objects to be equal: \nExpected:\n" + this.toDebugString( expected )
+ "\n\nActual:\n" + this.toDebugString( actual ) + "\n\nExpected XML: "
+ this.xstreamXML.toXML( expected ) + "\n\nActual:\n" + this.xstreamXML.toXML( actual ) );
}
}
public static void main( String[] args )
{
Class clazz = RepositoryContentClassListResource.class;
Method[] methods = clazz.getMethods();
String suffix = "2";
String varName = "item" + suffix;
System.out.println( clazz.getSimpleName() + " " + varName + " = new " + clazz.getSimpleName() + "();" );
for ( int ii = 0; ii < methods.length; ii++ )
{
Method method = methods[ii];
if ( method.getName().startsWith( "set" ) && !method.getName().equals( "setModelEncoding" ) )
{
String name = method.getName().substring( 3 );
System.out.println( varName + "." + method.getName() + "( \"" + name + suffix + "\" );" );
}
}
}
}