func TestWorker(t *testing.T) {
	tes := new(monitor.MonitoredWorker)
	itw := &TestWork{From: 1, To: 8, sleep: 300}
	tes.Itw = itw
	tes.Start()
	log.Println(tes.Start())
	time.Sleep(time.Second * 1)
	if tes.GetState() != 1 {
		t.Error("Expected Running(1)")
		return
	}
	tes.Stop()
	if tes.GetState() != 0 {
		t.Error("Expected Stoped(0)")
		return
	}
	tes.Start()
	time.Sleep(time.Second * 9)
	if tes.GetState() != 3 {
		t.Error("Expected Comlete(3)")
		return
	}

	tes.Start()
	time.Sleep(time.Second * 1)
	if tes.GetState() != 3 {
		t.Error("Expected Failed(3)")
		return
	}
}
func TestPartDownloadWorker(t *testing.T) {
	return
	url := "http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.list"
	c, _ := httpclient.GetSize(url)
	c = c / 2
	f, _ := iotools.CreateSafeFile("g_ubuntu-14.04.2-server-amd64.list")
	defer f.Close()
	log.Println(f.Truncate(c))
	dow := httpclient.CreatePartialDownloader(url, f, 0, 0, c)
	mv := monitor.MonitoredWorker{Itw: dow}
	log.Println(mv.Start())
	log.Println(mv.Start())
	time.Sleep(time.Second * 1)
	log.Println(mv.Stop())
	time.Sleep(time.Second * 5)
	log.Println(mv.Start())
	log.Println(mv.Start())
	time.Sleep(time.Second * 5)
	log.Println(mv.Stop())
}
func TestMultiPartDownloadWorker(t *testing.T) {
	partcount := 10
	pc := int64(partcount)
	url := "http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.list"
	c, _ := httpclient.GetSize(url)
	f, _ := iotools.CreateSafeFile("gm_ubuntu-14.04.2-server-amd64.list")
	defer f.Close()
	f.Truncate(c)
	ps := c / pc
	for i := int64(0); i < pc-1; i++ {
		//log.Println(ps*i, ps*i+ps)
		d := httpclient.CreatePartialDownloader(url, f, ps*i, ps*i, ps*i+ps)
		mv := monitor.MonitoredWorker{Itw: d}
		mv.Start()
	}
	lastseg := c - (ps * (pc - 1))
	dow := httpclient.CreatePartialDownloader(url, f, lastseg, lastseg, c)
	mv := monitor.MonitoredWorker{Itw: dow}
	mv.Start()

	time.Sleep(time.Second * 15)

}