/** * Copyright (c) 2014 - 2017 Frank Appel * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Frank Appel - initial API and implementation */ package com.codeaffine.eclipse.core.runtime; import static org.assertj.core.api.Assertions.assertThat; import static org.eclipse.core.runtime.Platform.getExtensionRegistry; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import org.eclipse.core.runtime.IExtensionRegistry; import org.junit.Before; import org.junit.Test; import com.codeaffine.eclipse.core.runtime.internal.OperatorFactory; public class RegistryAdapterPDETest { private static final String EXTENSION_POINT_ID = "extension.point.id"; private RegistryAdapter adapter; private OperatorFactory factory; @Before public void setUp() { factory = spy( new OperatorFactory( getExtensionRegistry() ) ); adapter = new RegistryAdapter( factory ); } @Test public void readExtension() { ReadSingleProcessor<Extension> actual = adapter.readExtension( EXTENSION_POINT_ID ); assertThat( actual ).isNotNull(); verify( factory ).newReadExtensionOperator( EXTENSION_POINT_ID ); } @Test( expected = IllegalArgumentException.class ) public void readExtensionWithNullAsExtensionPointId() { adapter.readExtension( null ); } @Test public void readExtensions() { ReadMultiProcessor<Extension> actual = adapter.readExtensions( EXTENSION_POINT_ID ); assertThat( actual ).isNotNull(); verify( factory ).newReadExtensionsOperator( EXTENSION_POINT_ID ); } @Test( expected = IllegalArgumentException.class ) public void readExtensionsWithNullAsExtensionPointId() { adapter.readExtensions( null ); } @Test public void createExecutableExtension() { CreateSingleProcessor<Runnable> actual = adapter.createExecutableExtension( EXTENSION_POINT_ID, Runnable.class ); assertThat( actual ).isNotNull(); verify( factory ).newCreateExecutableExtensionOperator( EXTENSION_POINT_ID, Runnable.class ); } @Test( expected = IllegalArgumentException.class ) public void createExecutableExtensionWithNullAsExtensionPointId() { adapter.createExecutableExtension( null, Runnable.class ); } @Test( expected = IllegalArgumentException.class ) public void createExecutableExtensionWithNullAsExtensionType() { adapter.createExecutableExtension( EXTENSION_POINT_ID, null ); } @Test public void createExecutableExtensions() { CreateMultiProcessor<Runnable> actual = adapter.createExecutableExtensions( EXTENSION_POINT_ID, Runnable.class ); assertThat( actual ).isNotNull(); verify( factory ).newCreateExecutableExtensionsOperator( EXTENSION_POINT_ID, Runnable.class ); } @Test( expected = IllegalArgumentException.class ) public void createExecutableExtensionsWithNullAsExtensionPointId() { adapter.createExecutableExtensions( null, Runnable.class ); } @Test( expected = IllegalArgumentException.class ) public void createExecutableExtensionsWithNullAsExtensionType() { adapter.createExecutableExtensions( EXTENSION_POINT_ID, null ); } @Test( expected = IllegalArgumentException.class ) public void constructorWithNullAsRegistry() { new RegistryAdapter( ( IExtensionRegistry )null ); } }