Package org.sonatype.nexus.proxy.repository

Source Code of org.sonatype.nexus.proxy.repository.RecreateAttributesWalkerTest

/*
* Sonatype Nexus (TM) Open Source Version
* Copyright (c) 2007-2014 Sonatype, Inc.
* All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
*
* This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
* which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
* of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
* Eclipse Foundation. All other trademarks are the property of their respective owners.
*/
package org.sonatype.nexus.proxy.repository;

import java.util.Arrays;
import java.util.HashMap;

import org.sonatype.nexus.proxy.AbstractProxyTestEnvironment;
import org.sonatype.nexus.proxy.EnvironmentBuilder;
import org.sonatype.nexus.proxy.M2TestsuiteEnvironmentBuilder;
import org.sonatype.nexus.proxy.ResourceStoreRequest;
import org.sonatype.nexus.proxy.item.DefaultStorageCompositeFileItem;
import org.sonatype.nexus.proxy.item.DefaultStorageFileItem;
import org.sonatype.nexus.proxy.item.DefaultStorageLinkItem;
import org.sonatype.nexus.proxy.item.StorageCompositeFileItem;
import org.sonatype.nexus.proxy.item.StorageFileItem;
import org.sonatype.nexus.proxy.item.StorageItem;
import org.sonatype.nexus.proxy.item.StorageLinkItem;
import org.sonatype.nexus.proxy.item.StringContentLocator;

import org.junit.Test;

import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;

public class RecreateAttributesWalkerTest
    extends AbstractProxyTestEnvironment
{
  @Override
  protected EnvironmentBuilder getEnvironmentBuilder()
      throws Exception
  {
    return new M2TestsuiteEnvironmentBuilder("repo1");
  }

  @Test
  public void testRecreateAttributes()
      throws Exception
  {
    // get a hosted repository
    final Repository repository = getRepositoryRegistry().getRepository("inhouse");

    // deploy some stuff in it
    // a file
    final ResourceStoreRequest fileRequest = new ResourceStoreRequest("/fileItem.txt");
    final StorageFileItem fileItem =
        new DefaultStorageFileItem(repository, fileRequest, true, true, new StringContentLocator(
            "This is a file."));
    repository.storeItem(false, fileItem);
    // a link
    final ResourceStoreRequest linkRequest = new ResourceStoreRequest("/linkItem.txt");
    final StorageLinkItem linkItem =
        new DefaultStorageLinkItem(repository, linkRequest, true, true, fileItem.getRepositoryItemUid());
    repository.storeItem(false, linkItem);
    // a composite
    final ResourceStoreRequest compositeRequest = new ResourceStoreRequest("/compositeItem.txt");
    final StorageCompositeFileItem compositeItem =
        new DefaultStorageCompositeFileItem(repository, compositeRequest, true, true, new StringContentLocator(
            "This is a Composite!"), Arrays.asList(new StorageItem[]{fileItem}));
    repository.storeItem(false, compositeItem);

    // recreate attributes
    final HashMap<String, String> initialData = new HashMap<String, String>();
    initialData.put("foo", "bar");
    final ResourceStoreRequest recreateAttributesRequest = new ResourceStoreRequest("/");
    repository.recreateAttributes(recreateAttributesRequest, initialData);

    // validate
    final StorageItem retrievedFileItem =
        repository.retrieveItem(false, new ResourceStoreRequest("/fileItem.txt"));
    final StorageItem retrievedLinkItem =
        repository.retrieveItem(false, new ResourceStoreRequest("/linkItem.txt"));
    final StorageItem retrievedCompositeItem =
        repository.retrieveItem(false, new ResourceStoreRequest("/compositeItem.txt"));

    // by presence of the "initial data" we validate that WalkerProcessor did process these types of items
    assertThat(retrievedFileItem.getRepositoryItemAttributes().containsKey("foo"), is(true));
    assertThat(retrievedLinkItem.getRepositoryItemAttributes().containsKey("foo"), is(true));
    assertThat(retrievedCompositeItem.getRepositoryItemAttributes().containsKey("foo"), is(true));
    assertThat(retrievedFileItem.getRepositoryItemAttributes().get("foo"), is("bar"));
    assertThat(retrievedLinkItem.getRepositoryItemAttributes().get("foo"), is("bar"));
    assertThat(retrievedCompositeItem.getRepositoryItemAttributes().get("foo"), is("bar"));
  }
}
TOP

Related Classes of org.sonatype.nexus.proxy.repository.RecreateAttributesWalkerTest

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