package jp.agentec.sinaburocast.service;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.mail.MessagingException;

import jp.agentec.sinaburocast.csv.MemberInfoCsv;
import jp.agentec.sinaburocast.entity.AdminUser;
import jp.agentec.sinaburocast.entity.Gift;
import jp.agentec.sinaburocast.entity.Member;
import jp.agentec.sinaburocast.form.admin.member.MemberReportForm;
import jp.agentec.sinaburocast.form.admin.member.MemberSearchForm;
import junit.framework.TestSuite;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.seasar.dao.unit.S2DaoTestCase;

public class MemberServiceTest extends S2DaoTestCase {

	@Resource
	private MemberService memberService;

	public MemberServiceTest(String string) {
		super(string);
	}

	public static TestSuite suite() {
		TestSuite suite = new TestSuite("MemberServiceTest");
		suite.addTest(new MemberServiceTest("insertMemberTx"));
		suite.addTest(new MemberServiceTest("findById"));
		suite.addTest(new MemberServiceTest("findByUserId"));
		suite.addTest(new MemberServiceTest("findByEmail"));
		suite.addTest(new MemberServiceTest("findByPcEmail"));
		suite.addTest(new MemberServiceTest("findByMoEmail"));
		suite.addTest(new MemberServiceTest("findByLoginId"));
		suite.addTest(new MemberServiceTest("insertRegistMailSendLogicTx"));
		suite.addTest(new MemberServiceTest("findByDeleteId"));
		suite.addTest(new MemberServiceTest("findByMemberList"));
		suite.addTest(new MemberServiceTest("findByIdAdmin"));
		suite.addTest(new MemberServiceTest("findByMemberReportList"));
		suite.addTest(new MemberServiceTest("findByMemberReportListDay"));
		suite.addTest(new MemberServiceTest("findByMemberListCvs"));
		suite.addTest(new MemberServiceTest("updateMemberTx"));
		suite.addTest(new MemberServiceTest("deleteMemberTx"));
		suite.addTest(new MemberServiceTest("memberAllRegistTx"));
		suite.addTest(new MemberServiceTest("insertMemberAdminTx"));
		suite.addTest(new MemberServiceTest("getMemberList"));
		return suite;

	}

//	public void insertMember(){
//		Member member = new Member();
//
//
//	    memberService.insertMember(member, insId)
//	}
//	public void findById(){
//	    memberService.findById(1).toString();
//	}
//	public void findByUserId(){
//	    memberService.findByUserId
//	}
//	public void findByEmail(){
//	    memberService.findByEmail
//	}
//	public void findByPcEmail(){
//	    memberService.findByPcEmail
//	}
//	public void findByMoEmail(){
//	    memberService.findByMoEmail
//	}
//	public void findByLoginId(){
//	    memberService.findByLoginId
//	}
//	public void insertRegistMailSendLogic(){
//	    memberService.insertRegistMailSendLogic
//	}





	/**
	 * @throws java.lang.Exception
	 */
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	/**
	 * @throws java.lang.Exception
	 */
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	/**
	 * @throws java.lang.Exception
	 */
	@Before
	public void setUp() throws Exception {
        include("app.dicon");
	}

	/**
	 * @throws java.lang.Exception
	 */
	@After
	public void tearDown() throws Exception {
	}

	public void insertMemberTx(){
		Member member = new Member();
		member.loginId = "testtest";
		member.password = "testtest";
		member.validFlg = 1;
		member.pointNum = 0;
		member.authFailNum = 0;
		member.delFlg = 0;
	    System.out.println(memberService.insertMember(member,"test"));
	}
	public void findById(){
		System.out.println(memberService.findById(1));

	}
	public void findByUserId(){

	    System.out.println(memberService.findByUserId("111111"));
	}
	public void findByEmail(){
	    //System.out.println(memberService.findByEmail("kim-hs@agentec.jp"));
		List<Member> list =memberService.findByEmail("kim-hs@agentec.jp");
		for (Member member : list) {
			//System.out.println(enquete.enqueteSummary.enqueteId);
			System.out.println(member.memberId);
			//System.out.println(gift.giftId);
			System.out.println(member);
		}
	}
	public void findByPcEmail(){
		System.out.println(memberService.findByPcEmail("kim-hs@agentec.jp"));

	}
	public void findByMoEmail(){

	    System.out.println(memberService.findByMoEmail("kim-hs@agentec.jp"));
	}
	public void findByLoginId(){

		List<Member> list =memberService.findByLoginId("111111");
		for (Member member : list) {
			//System.out.println(enquete.enqueteSummary.enqueteId);
			System.out.println(member.memberId);
			//System.out.println(gift.giftId);
			System.out.println(member);
		}
	}
	public void insertRegistMailSendLogicTx() throws UnsupportedEncodingException, MessagingException{
		Member member = new Member();
	    //memberService.insertRegistMailSendLogic
		member.loginId = "testtest";
		member.password = "testtest";
		member.validFlg = 1;
		member.pointNum = 0;
		member.authFailNum = 0;
		member.delFlg = 0;
	    System.out.println(memberService.insertRegistMailSendLogic(member,"kim-hs@agentec.jp","www.test.com"));
	}

	public void findByDeleteId(){
		System.out.println(memberService.findByDeleteId(1));

	}

	public void findByMemberList(){
		MemberSearchForm memberSearchForm = new MemberSearchForm();
		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.findByMemberList(null,1,memberSearchForm,false));
	}
	public void findByIdAdmin(){
		System.out.println(memberService.findByIdAdmin(1));

	}
	public void findByMemberReportList(){
		System.out.println(memberService.findByMemberReportList());

	}
	public void findByMemberReportListDay(){
		MemberReportForm memberReportForm = new MemberReportForm();
		memberReportForm.fromDay = "2012/01/01";
		memberReportForm.toDay= "2012/03/01";
		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.findByMemberReportListDay(memberReportForm));
	}
	public void findByMemberListCvs(){
		MemberSearchForm memberSearchForm = new MemberSearchForm();
		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.findByMemberListCvs(memberSearchForm));
	}
	public void updateMemberTx(){
		Member member = new Member();
		member = memberService.findById(50);

		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.updateMember(member,"TEST"));
	}
	public void deleteMemberTx(){
		Member member = new Member();
		member = memberService.findById(1);

		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.deleteMember("1","TEST"));
	}
	public void memberAllRegistTx(){
		AdminUser adminUser = new AdminUser();
		adminUser.loginId = "TEST";
		List<MemberInfoCsv> memberCsvList = new ArrayList<MemberInfoCsv>();
		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.memberAllRegist(memberCsvList,adminUser));
	}
	public void insertMemberAdminTx(){
		Member member = new Member();
		member = memberService.findById(1);
		//System.out.println(enqueteMailService.findAllOrderById(null,1,memberSearchForm));
		System.out.println(memberService.insertMemberAdmin(member,"TEST"));
	}
	public void getMemberList(){
		List<Integer> memberIdList = new ArrayList<Integer>();
		for (int i = 0; i < 5; i++) {
			memberIdList.add(i);
		}
		System.out.println(memberService.getMemberList(memberIdList));
	}
}