decode_test.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package decode
  2. import (
  3. "github.com/allanpk716/ChineseSubFinder/internal/pkg/unit_test_helper"
  4. "path/filepath"
  5. "testing"
  6. )
  7. func getTestFileDir(testFileName string) (xmlDir string) {
  8. rootDir := unit_test_helper.GetTestDataResourceRootPath([]string{"movies", "Army of the Dead (2021)"}, 4, false)
  9. if testFileName == "movie.xml" {
  10. return filepath.Join(rootDir, "movie.xml")
  11. } else if testFileName == "movie.nfo" {
  12. return filepath.Join(rootDir, "Army of the Dead (2021) WEBDL-1080p.nfo")
  13. } else if testFileName == "has_http_address.nfo" {
  14. return filepath.Join(rootDir, "has_http_address.nfo")
  15. } else if testFileName == "has_http_address.nfo" {
  16. return filepath.Join(rootDir, "only_http_address.nfo")
  17. }
  18. return ""
  19. }
  20. func TestGetImdbAndYearMovieXml(t *testing.T) {
  21. wantid := "tt0993840"
  22. wantyear := "2021"
  23. dirPth := getTestFileDir("movie.xml")
  24. imdbInfo, err := getImdbAndYearMovieXml(dirPth)
  25. if err != nil {
  26. t.Error(err)
  27. }
  28. if imdbInfo.ImdbId != wantid {
  29. t.Errorf("got = %v, want %v", imdbInfo.ImdbId, wantid)
  30. }
  31. if imdbInfo.Year != wantyear {
  32. t.Errorf("got = %v, want %v", imdbInfo.Year, wantyear)
  33. }
  34. }
  35. func TestGetImdbAndYearNfo(t *testing.T) {
  36. wantid := "tt0993840"
  37. wantyear := "2021"
  38. imdbInfo, err := getImdbAndYearNfo(getTestFileDir("movie.nfo"), "movie")
  39. if err != nil {
  40. t.Fatal(err)
  41. }
  42. if imdbInfo.ImdbId != wantid {
  43. t.Fatalf("\n\nid = %v, wantid %v", imdbInfo.ImdbId, wantid)
  44. }
  45. if imdbInfo.Year != wantyear {
  46. t.Fatalf("\n\nyear = %v, wantyear %v", imdbInfo.Year, wantyear)
  47. }
  48. wantid = "tt12801326"
  49. wantyear = "2020"
  50. dirPth := getTestFileDir("has_http_address.nfo")
  51. imdbInfo, err = getImdbAndYearNfo(dirPth, "movie")
  52. if err != nil {
  53. t.Fatal(err)
  54. }
  55. if imdbInfo.ImdbId != wantid {
  56. t.Fatalf("\n\nid = %v, wantid %v", imdbInfo.ImdbId, wantid)
  57. }
  58. if imdbInfo.Year != wantyear {
  59. t.Fatalf("\n\nyear = %v, wantyear %v", imdbInfo.Year, wantyear)
  60. }
  61. wantid = ""
  62. wantyear = ""
  63. dirPth = getTestFileDir("only_http_address.nfo")
  64. imdbInfo, err = getImdbAndYearNfo(dirPth, "movie")
  65. if err == nil {
  66. t.Fatal("need error")
  67. }
  68. }
  69. func TestGetSeasonAndEpisodeFromFileName(t *testing.T) {
  70. str := `杀死伊芙 第二季(-简繁英双语字幕-FIX字幕侠)Killing.Eve.S02.Do.You.Know.How.to.Dispose.of.a.Body.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb.rar`
  71. b, s, e, err := GetSeasonAndEpisodeFromSubFileName(str)
  72. if err != nil {
  73. t.Fatal(err)
  74. }
  75. t.Logf("\n\n%t\t S%dE%d\n", b, s, e)
  76. }
  77. func TestGetNumber2Float(t *testing.T) {
  78. testString := "asd&^%1998.2jh aweo "
  79. outNumber, err := GetNumber2Float(testString)
  80. if err != nil {
  81. t.Error(err)
  82. }
  83. if outNumber != 1998.2 {
  84. t.Error("not the same")
  85. }
  86. }
  87. func TestGetNumber2int(t *testing.T) {
  88. testString := "asd&^%1998jh aweo "
  89. outNumber, err := GetNumber2int(testString)
  90. if err != nil {
  91. t.Error(err)
  92. }
  93. if outNumber != 1998 {
  94. t.Error("not the same")
  95. }
  96. }