func (s *MySuite) TestRemoveMailThreadWithSingleReference(c *C) {

	session, err := mgo.Dial("localhost")
	c.Assert(err, IsNil)
	defer session.Close()
	coll := session.DB(mailBox).C(threadsCollection)

	var mail mail.Mail
	mail.Init()
	mail.From = bson.NewObjectId()
	mail.Subject = "Hello world"
	mail.Mailtext = "Long mail text"
	mailThreadId, errr := CreateNewMailThread(coll, &mail)
	c.Assert(errr, Equals, true)
	retval := DeleteMailThread(coll, mailThreadId)

	c.Assert(retval, Equals, true)
	_, err = findMailThread(coll, mailThreadId)
	c.Assert(err, NotNil)

}
func (s *MySuite) TestCreateEmptyMailThread(c *C) {

	session, err := mgo.Dial("localhost")
	c.Assert(err, IsNil)
	defer session.Close()
	coll := session.DB(mailBox).C(threadsCollection)

	var mail mail.Mail
	mail.Init()
	threadId, retval := CreateNewMailThread(coll, &mail)
	c.Assert(retval, Equals, true)

	var mailThread MailThread
	err = coll.FindId(threadId).One(&mailThread)
	c.Assert(err, IsNil)
	c.Assert(mailThread.Id, Equals, threadId)
	c.Assert(mailThread.ReferenceCount, Equals, 0)
	c.Assert(len(mailThread.Mails), Equals, 1)

	// TODO figure out why nsec is not same :(
	//c.Assert(mailThread.Mails[0], DeepEquals, mail)
}