package reorder import ( "fmt" "io/ioutil" "leit.com/leit_seat_aps/common" "leit.com/leit_seat_aps/db" "os" "regexp" "testing" ) func TestReorder(t *testing.T) { var ( connstring string err error projtab db.Me_project projtablst []db.Me_project rd []os.FileInfo fi os.FileInfo edi_file string reoland ReorderLandData matched bool ) // 连接数据库 connstring = fmt.Sprintf("server=%s;user id=%s;password=%s;database=%s;port=%d;encrypt=disable", `DESKTOP-S4G95G5\\MLINK`, "lapp", "123fis", "LAPP_JITS", 1433) if err = db.InitMssqlDb(connstring); err != nil { t.Errorf("Failed to connect db due to: %v", err) return } defer db.G_DbEngine.Close() projtab = db.Me_project{} if projtablst, err = projtab.GetAllActive(); err != nil { t.Errorf("Failed to get project list!") return } for i, _ := range projtablst { // 加载项目数据 // 读取文件夹内的文件并解析 if rd, err = ioutil.ReadDir(projtablst[i].Reorder_folder + "/inbox"); err != nil { return } for _, fi = range rd { if fi.IsDir() { continue } edi_file = projtablst[i].Reorder_folder + "/inbox" + "/" + fi.Name() fmt.Println(edi_file) // 判断文件的合规性 if matched, err = regexp.MatchString(projtablst[i].Reorder_filename_regexp, fi.Name()); err != nil { t.Errorf("Failed to match EDI file name: %s due to: %v", fi.Name(), err) return } if !matched { t.Errorf("The specified EDI file: %s doesn't match the required name specification!", fi.Name()) os.Rename(edi_file, projtablst[i].Reorder_folder+"/errbox"+"/"+fi.Name()) return } // 解析REORDER文件到字典 fmt.Println("Ready to read reorder data......") reoland = ReorderLandData{} reoland.Projnr = projtablst[i].Projectid reoland.Edifile = edi_file if err = reoland.ReadReorderData(edi_file); err != nil { t.Errorf("Failed to parse REORDER file due to: %v", err) os.Rename(edi_file, projtablst[i].Reorder_folder+"/errbox"+"/"+fi.Name()) return } // 保存REORDER字典到临时缓存表 if err = reoland.SaveReorderData(); err != nil { t.Errorf("Failed to save REORDER parse result due to: %v", err) return } // 将文件移到outbox os.Rename(edi_file, projtablst[i].Reorder_folder+"/outbox"+"/"+fi.Name()) } } } func TestSendMail(t *testing.T) { /*! username 发送者邮件 password 授权码 host 主机地址 smtp.qq.com:587 或 smtp.qq.com:25 to 接收邮箱 多个接收邮箱使用 ; 隔开 name 发送人名称 subject 发送主题 body 发送内容 mailType 发送邮件内容类型 */ host := "smtp.qq.com:587" subject := "SEQ+1 更新报警" body := "客户订单 4020691 已下达,不能进行SEQ+1更新!" username := "332386556@qq.com" password := "rommipiezlyrbhhd" //这个是授权码,而不是密码 to := "wenzhi.lou@le-it.com.cn" name := "wenzhi.lou" err := common.SendMail(username, password, host, to, name, subject, body, "html") if err != nil{ t.Error(err) } }