Package net.azib.ipscan.core

Source Code of net.azib.ipscan.core.ScannerDispatcherThreadTest

/**
* This file is a part of Angry IP Scanner source code,
* see http://www.angryip.org/ for more information.
* Licensed under GPLv2.
*/
package net.azib.ipscan.core;

import java.net.InetAddress;
import java.util.Collections;
import java.util.concurrent.ThreadPoolExecutor;

import net.azib.ipscan.config.ScannerConfig;
import net.azib.ipscan.core.ScanningResultList.ScanInfo;
import net.azib.ipscan.feeders.Feeder;
import net.azib.ipscan.fetchers.Fetcher;
import net.azib.ipscan.fetchers.FetcherRegistry;
import net.azib.ipscan.fetchers.IPFetcher;

import static org.mockito.Mockito.*;
import static org.junit.Assert.*;

import org.junit.Test;
import org.objenesis.ObjenesisHelper;

/**
* ScannerThreadTest
*
* @author Anton Keks
*/
public class ScannerDispatcherThreadTest {
 
  @Test
  public void testConstruction() throws Exception {
    FetcherRegistry registry = mock(FetcherRegistry.class);
    when(registry.getSelectedFetchers()).thenReturn(Collections.<Fetcher>singleton(new IPFetcher()));
    Feeder feeder = mock(Feeder.class);
    when(feeder.getInfo()).thenReturn("info");
    when(feeder.getName()).thenReturn("text.ip");

    ScanningResultList scanningResults = new ScanningResultList(registry);
    scanningResults.info = new ScanInfo(); // initialize info so we can add a dummy result
    scanningResults.registerAtIndex(0, scanningResults.createResult(InetAddress.getLocalHost()));
   
    ScannerConfig config = mock(ScannerConfig.class);
    config.maxThreads = 10;
   
    ScannerDispatcherThread thread = new ScannerDispatcherThread(feeder, new Scanner(registry), null, null, scanningResults, config, null);

    assertTrue("ScannerThread should not clear the results - otherwise rescanning will not work",
            scanningResults.areResultsAvailable());
   
    assertEquals(thread.getClass().getSimpleName(), thread.getName());
    assertTrue(thread.isDaemon());
    assertEquals(config.maxThreads, ((ThreadPoolExecutor)thread.threadPool).getMaximumPoolSize());
    assertEquals(thread, ((ThreadPoolExecutor) thread.threadPool).getThreadFactory());
  }
 
  @Test
  public void threadFactoryProducesDaemons() throws Exception {
    ScannerDispatcherThread thread = (ScannerDispatcherThread) ObjenesisHelper.newInstance(ScannerDispatcherThread.class);
    thread.threadGroup = new ThreadGroup("foo");
    Thread t = thread.newThread(mock(Runnable.class));
    assertTrue(t.isDaemon());
    assertSame(thread.threadGroup, t.getThreadGroup());
  }
}
TOP

Related Classes of net.azib.ipscan.core.ScannerDispatcherThreadTest

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.