content: /*
   * CDDL HEADER START
   *
   * The contents of this file are subject to the terms of the Common Development
   * and Distribution License (the "License").
   * You may not use this file except in compliance with the License.
   *
   * You can obtain a copy of the license at
   * src/com/vodafone360/people/VODAFONE.LICENSE.txt or
   * http://github.com/360/360-Engine-for-Android
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   * When distributing Covered Code, include this CDDL HEADER in each file and
   * include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt.
   * If applicable, add the following below this CDDL HEADER, with the fields
   * enclosed by brackets "[]" replaced with your own identifying information:
   * Portions Copyright [yyyy] [name of copyright owner]
   *
   * CDDL HEADER END
   *
   * Copyright 2010 Vodafone Sales & Services Ltd.  All rights reserved.
   * Use is subject to license terms.
   */
  
  package com.vodafone360.people.tests.engine.contactsync;
  
  import android.test.AndroidTestCase;
  import android.test.suitebuilder.annotation.Suppress;
  
  import com.vodafone360.people.engine.contactsync.BaseSyncProcessor;
  import com.vodafone360.people.engine.contactsync.DefaultProcessorFactory;
  import com.vodafone360.people.engine.contactsync.DownloadServerContacts;
  import com.vodafone360.people.engine.contactsync.FetchNativeContacts;
  import com.vodafone360.people.engine.contactsync.ProcessorFactory;
  import com.vodafone360.people.engine.contactsync.UpdateNativeContacts;
  import com.vodafone360.people.engine.contactsync.UploadServerContacts;
  
  /**
   * The DefaultProcessorFactoryTest handles unit testing of
   * DefaultProcessorFactory class.
   */
  public class DefaultProcessorFactoryTest extends AndroidTestCase {
  
      /**
       * Tests the type of the created processor depending on the requested type.
       */
      @Suppress
      public void testProcessorTypeCreation() {
  
          DefaultProcessorFactory factory = new DefaultProcessorFactory();
          BaseSyncProcessor processor;
  
          processor = factory.create(ProcessorFactory.DOWNLOAD_SERVER_CONTACTS, null, null);
          assertTrue(processor instanceof DownloadServerContacts);
  
          processor = factory.create(ProcessorFactory.FETCH_NATIVE_CONTACTS, null, null);
          assertTrue(processor instanceof FetchNativeContacts);
  
          processor = factory.create(ProcessorFactory.UPDATE_NATIVE_CONTACTS, null, null);
          assertTrue(processor instanceof UpdateNativeContacts);
  
          processor = factory.create(ProcessorFactory.UPLOAD_SERVER_CONTACTS, null, null);
          assertTrue(processor instanceof UploadServerContacts);
  
      }
  
      /**
       * Checks that the unexpected type of processor creation is handled.
       */
      public void testUnexpectedProcessorType() {
  
          DefaultProcessorFactory factory = new DefaultProcessorFactory();
          Exception exception = null;
  
          try {
              // with type=-12, an IllegalArgumentException shall be thrown
              factory.create(-12, null, null);
          } catch (IllegalArgumentException e) {
              exception = e;
          }
  
          // check the exception type
          assertTrue(exception instanceof IllegalArgumentException);
      }
  
  }
  