Package org.sonatype.nexus.proxy.repository

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

/*
* 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.List;

import org.sonatype.configuration.validation.ValidationResponse;
import org.sonatype.nexus.configuration.CoreConfiguration;
import org.sonatype.nexus.configuration.application.ApplicationConfiguration;
import org.sonatype.nexus.configuration.model.CRepository;
import org.sonatype.nexus.configuration.model.Configuration;
import org.sonatype.sisu.litmus.testsupport.TestSupport;

import com.google.common.collect.Lists;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.junit.Test;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

/**
* {@link AbstractGroupRepositoryConfiguration} UTs.
*
* @since 2.2
*/
public class AbstractGroupRepositoryConfigurationTest
    extends TestSupport
{

  @Test
  public void sameMemberMultipleTime() {
    final Xpp3Dom xpp3Dom = mock(Xpp3Dom.class);
    final ApplicationConfiguration applicationConfiguration = mock(ApplicationConfiguration.class);
    final Configuration configuration = mock(Configuration.class);
    final CRepository repo1 = new CRepository();
    repo1.setId("1");
    final CRepository repo2 = new CRepository();
    repo2.setId("2");

    when(applicationConfiguration.getConfigurationModel()).thenReturn(configuration);
    when(configuration.getRepositories()).thenReturn(Lists.newArrayList(repo1, repo2));

    final AbstractGroupRepositoryConfiguration underTest = new AbstractGroupRepositoryConfiguration(
        xpp3Dom
    )
    {
      @Override
      public List<String> getMemberRepositoryIds() {
        return Lists.newArrayList("1", "1");
      }
    };

    final ValidationResponse validationResponse = underTest.doValidateChanges(
        applicationConfiguration, mock(CoreConfiguration.class), xpp3Dom
    );

    assertThat(validationResponse.isValid(), is(false));
    assertThat(validationResponse.getValidationErrors().size(), is(1));
    assertThat(
        validationResponse.getValidationErrors().get(0).getMessage(),
        is("Group repository has same member multiple times!")
    );
  }

}
TOP

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

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.