// Path: smssync/src/test/java/org/addhen/smssync/domain/entity/DomainEntityFixture.java
// public final class DomainEntityFixture {
// 
//     public static final Long ID = 2l;
// 
//     private static Date mDate = new Date();
// 
//     public static FilterEntity getFilterEntity() {
//         FilterEntity filterEntity = new FilterEntity();
//         filterEntity._id = ID;
//         filterEntity.setPhoneNumber("000000000");
//         filterEntity.setStatus(FilterEntity.Status.WHITELIST);
//         return filterEntity;
//     }
// 
//     public static HttpNameValuePair getHttpNameValuePair() {
//         return new HttpNameValuePair("key", "value");
//     }
// 
//     public static LogEntity getLogEntity() {
//         LogEntity logEntity = new LogEntity();
//         logEntity._id = ID;
//         logEntity.setMessage("Log message");
//         return logEntity;
//     }
// 
//     public static MessageEntity getMessageEntity() {
//         MessageEntity messageEntity = new MessageEntity();
//         messageEntity.setId(ID);
//         messageEntity.setDeliveredMessageDate(mDate);
//         messageEntity.setDeliveryResultCode(1);
//         messageEntity.setDeliveryResultMessage("delivered");
//         messageEntity.setMessageBody("Message body");
//         messageEntity.setMessageDate(mDate);
//         messageEntity.setMessageType(MessageEntity.Type.PENDING);
//         messageEntity.setMessageFrom("000000000");
//         messageEntity.setMessageUuid("uuid0123456");
//         messageEntity.setSentResultCode(1);
//         messageEntity.setStatus(MessageEntity.Status.SENT);
//         messageEntity.setRetries(3);
//         return messageEntity;
//     }
// 
//     public static WebServiceEntity getWebServiceEntity() {
//         WebServiceEntity webServiceEntity = new WebServiceEntity();
//         webServiceEntity.setId(ID);
//         webServiceEntity.setSecret("secret");
//         webServiceEntity.setKeywords("keywords");
//         webServiceEntity.setTitle("title");
//         webServiceEntity.setSyncScheme(new SyncSchemeEntity());
//         webServiceEntity.setUrl("url");
//         return webServiceEntity;
//     }
// }
// 
// Path: smssync/src/main/java/org/addhen/smssync/domain/entity/FilterEntity.java
// public class FilterEntity extends Entity {
// 
//     private String phoneNumber;
// 
//     private Status status;
// 
//     public Long getId() {
//         return _id;
//     }
// 
//     public void setId(Long id) {
//         _id = id;
//     }
// 
//     public String getPhoneNumber() {
//         return phoneNumber;
//     }
// 
//     public void setPhoneNumber(String phoneNumber) {
//         this.phoneNumber = phoneNumber;
//     }
// 
//     public Status getStatus() {
//         return status;
//     }
// 
//     public void setStatus(Status status) {
//         this.status = status;
//     }
// 
//     /**
//      * The status of the filtered phone number.
//      */
//     public enum Status {
//         WHITELIST, BLACKLIST
//     }
// }


import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyZeroInteractions;
import com.addhen.android.raiburari.domain.executor.PostExecutionThread;
import com.addhen.android.raiburari.domain.executor.ThreadExecutor;
import org.addhen.smssync.domain.entity.DomainEntityFixture;
import org.addhen.smssync.domain.entity.FilterEntity;
import org.addhen.smssync.domain.repository.FilterRepository;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.verify;
/*
 * Copyright (c) 2010 - 2015 Ushahidi Inc
 * All rights reserved
 * Contact: team@ushahidi.com
 * Website: http://www.ushahidi.com
 * GNU Lesser General Public License Usage
 * This file may be used under the terms of the GNU Lesser
 * General Public License version 3 as published by the Free Software
 * Foundation and appearing in the file LICENSE.LGPL included in the
 * packaging of this file. Please review the following information to
 * ensure the GNU Lesser General Public License version 3 requirements
 * will be met: http://www.gnu.org/licenses/lgpl.html.
 *
 * If you have questions regarding the use of this file, please contact
 * Ushahidi developers at team@ushahidi.com.
 */

package org.addhen.smssync.domain.usecase.filter;




/**
 * @author Ushahidi Team <team@ushahidi.com>
 */
public class DeleteFilterUsecaseTest {

    private DeleteFilterUsecase mDeleteFilterUsecase;

    @Mock
    private ThreadExecutor mMockThreadExecutor;

    @Mock
    private PostExecutionThread mMockPostExecutionThread;

    @Mock
    private FilterRepository mMockFilterRepository;

    @Mock
    private FilterEntity mFilterEntity;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        mDeleteFilterUsecase = new DeleteFilterUsecase(mMockFilterRepository, mMockThreadExecutor,
                mMockPostExecutionThread);
    }

    @Test
    public void shouldSuccessfullyDeleteAFilter() {
// Path: smssync/src/test/java/org/addhen/smssync/domain/entity/DomainEntityFixture.java
// public final class DomainEntityFixture {
// 
//     public static final Long ID = 2l;
// 
//     private static Date mDate = new Date();
// 
//     public static FilterEntity getFilterEntity() {
//         FilterEntity filterEntity = new FilterEntity();
//         filterEntity._id = ID;
//         filterEntity.setPhoneNumber("000000000");
//         filterEntity.setStatus(FilterEntity.Status.WHITELIST);
//         return filterEntity;
//     }
// 
//     public static HttpNameValuePair getHttpNameValuePair() {
//         return new HttpNameValuePair("key", "value");
//     }
// 
//     public static LogEntity getLogEntity() {
//         LogEntity logEntity = new LogEntity();
//         logEntity._id = ID;
//         logEntity.setMessage("Log message");
//         return logEntity;
//     }
// 
//     public static MessageEntity getMessageEntity() {
//         MessageEntity messageEntity = new MessageEntity();
//         messageEntity.setId(ID);
//         messageEntity.setDeliveredMessageDate(mDate);
//         messageEntity.setDeliveryResultCode(1);
//         messageEntity.setDeliveryResultMessage("delivered");
//         messageEntity.setMessageBody("Message body");
//         messageEntity.setMessageDate(mDate);
//         messageEntity.setMessageType(MessageEntity.Type.PENDING);
//         messageEntity.setMessageFrom("000000000");
//         messageEntity.setMessageUuid("uuid0123456");
//         messageEntity.setSentResultCode(1);
//         messageEntity.setStatus(MessageEntity.Status.SENT);
//         messageEntity.setRetries(3);
//         return messageEntity;
//     }
// 
//     public static WebServiceEntity getWebServiceEntity() {
//         WebServiceEntity webServiceEntity = new WebServiceEntity();
//         webServiceEntity.setId(ID);
//         webServiceEntity.setSecret("secret");
//         webServiceEntity.setKeywords("keywords");
//         webServiceEntity.setTitle("title");
//         webServiceEntity.setSyncScheme(new SyncSchemeEntity());
//         webServiceEntity.setUrl("url");
//         return webServiceEntity;
//     }
// }
// 
// Path: smssync/src/main/java/org/addhen/smssync/domain/entity/FilterEntity.java
// public class FilterEntity extends Entity {
// 
//     private String phoneNumber;
// 
//     private Status status;
// 
//     public Long getId() {
//         return _id;
//     }
// 
//     public void setId(Long id) {
//         _id = id;
//     }
// 
//     public String getPhoneNumber() {
//         return phoneNumber;
//     }
// 
//     public void setPhoneNumber(String phoneNumber) {
//         this.phoneNumber = phoneNumber;
//     }
// 
//     public Status getStatus() {
//         return status;
//     }
// 
//     public void setStatus(Status status) {
//         this.status = status;
//     }
// 
//     /**
//      * The status of the filtered phone number.
//      */
//     public enum Status {
//         WHITELIST, BLACKLIST
//     }
// }


// Path: smssync/src/test/java/org/addhen/smssync/domain/usecase/filter/DeleteFilterUsecaseTest.java
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyZeroInteractions;
import com.addhen.android.raiburari.domain.executor.PostExecutionThread;
import com.addhen.android.raiburari.domain.executor.ThreadExecutor;
import org.addhen.smssync.domain.entity.DomainEntityFixture;
import org.addhen.smssync.domain.entity.FilterEntity;
import org.addhen.smssync.domain.repository.FilterRepository;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.verify;

/*
 * Copyright (c) 2010 - 2015 Ushahidi Inc
 * All rights reserved
 * Contact: team@ushahidi.com
 * Website: http://www.ushahidi.com
 * GNU Lesser General Public License Usage
 * This file may be used under the terms of the GNU Lesser
 * General Public License version 3 as published by the Free Software
 * Foundation and appearing in the file LICENSE.LGPL included in the
 * packaging of this file. Please review the following information to
 * ensure the GNU Lesser General Public License version 3 requirements
 * will be met: http://www.gnu.org/licenses/lgpl.html.
 *
 * If you have questions regarding the use of this file, please contact
 * Ushahidi developers at team@ushahidi.com.
 */

package org.addhen.smssync.domain.usecase.filter;




/**
 * @author Ushahidi Team <team@ushahidi.com>
 */
public class DeleteFilterUsecaseTest {

    private DeleteFilterUsecase mDeleteFilterUsecase;

    @Mock
    private ThreadExecutor mMockThreadExecutor;

    @Mock
    private PostExecutionThread mMockPostExecutionThread;

    @Mock
    private FilterRepository mMockFilterRepository;

    @Mock
    private FilterEntity mFilterEntity;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        mDeleteFilterUsecase = new DeleteFilterUsecase(mMockFilterRepository, mMockThreadExecutor,
                mMockPostExecutionThread);
    }

    @Test
    public void shouldSuccessfullyDeleteAFilter() {
        mDeleteFilterUsecase.setFilterId(DomainEntityFixture.ID);