@@ -0,0 +1,86 @@
|
||||
package modulevideoser
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/v/modulesectionmod"
|
||||
"91porn-server/models/v/modulevidmod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
func TestUpdateVideoSyncsModuleIDWhenMovingByRelationID(t *testing.T) {
|
||||
relationID := primitive.NewObjectID()
|
||||
videoID := primitive.NewObjectID()
|
||||
sectionID := primitive.NewObjectID()
|
||||
moduleID := primitive.NewObjectID()
|
||||
|
||||
originalGetVideo := getModuleVideoByID
|
||||
originalGetSection := getModuleSectionByID
|
||||
originalUpdateRelation := updateModuleVideo
|
||||
originalSyncModuleID := syncVideoModuleID
|
||||
defer func() {
|
||||
getModuleVideoByID = originalGetVideo
|
||||
getModuleSectionByID = originalGetSection
|
||||
updateModuleVideo = originalUpdateRelation
|
||||
syncVideoModuleID = originalSyncModuleID
|
||||
}()
|
||||
|
||||
getModuleVideoByID = func(id primitive.ObjectID) (modulevidmod.SectionVideo, error) {
|
||||
if id != relationID {
|
||||
t.Fatalf("relation id = %s, want %s", id.Hex(), relationID.Hex())
|
||||
}
|
||||
return modulevidmod.SectionVideo{ID: relationID, VideoID: videoID}, nil
|
||||
}
|
||||
getModuleSectionByID = func(id primitive.ObjectID) (modulesectionmod.Section, error) {
|
||||
if id != sectionID {
|
||||
t.Fatalf("section id = %s, want %s", id.Hex(), sectionID.Hex())
|
||||
}
|
||||
return modulesectionmod.Section{ID: sectionID, SubModuleID: moduleID}, nil
|
||||
}
|
||||
relationUpdated := false
|
||||
updateModuleVideo = func(in *modulevidmod.EditSelector) error {
|
||||
relationUpdated = true
|
||||
return nil
|
||||
}
|
||||
moduleIDSynced := false
|
||||
syncVideoModuleID = func(gotVideoID, gotModuleID primitive.ObjectID) error {
|
||||
moduleIDSynced = true
|
||||
if gotVideoID != videoID || gotModuleID != moduleID {
|
||||
t.Fatalf("sync ids = (%s, %s), want (%s, %s)", gotVideoID.Hex(), gotModuleID.Hex(), videoID.Hex(), moduleID.Hex())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
code := UpdateVideo(&modulevidmod.EditSelector{ID: &relationID, SectionID: §ionID})
|
||||
if code != stderr.Success {
|
||||
t.Fatalf("UpdateVideo() code = %d, want %d", code, stderr.Success)
|
||||
}
|
||||
if !relationUpdated || !moduleIDSynced {
|
||||
t.Fatalf("relationUpdated = %v, moduleIDSynced = %v", relationUpdated, moduleIDSynced)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateVideoSortOnlyDoesNotSyncModuleID(t *testing.T) {
|
||||
relationID := primitive.NewObjectID()
|
||||
sortCode := 10
|
||||
|
||||
originalUpdateRelation := updateModuleVideo
|
||||
originalSyncModuleID := syncVideoModuleID
|
||||
defer func() {
|
||||
updateModuleVideo = originalUpdateRelation
|
||||
syncVideoModuleID = originalSyncModuleID
|
||||
}()
|
||||
|
||||
updateModuleVideo = func(in *modulevidmod.EditSelector) error { return nil }
|
||||
syncVideoModuleID = func(videoID, moduleID primitive.ObjectID) error {
|
||||
t.Fatal("sort-only update must not sync module id")
|
||||
return nil
|
||||
}
|
||||
|
||||
code := UpdateVideo(&modulevidmod.EditSelector{ID: &relationID, SortCode: &sortCode})
|
||||
if code != stderr.Success {
|
||||
t.Fatalf("UpdateVideo() code = %d, want %d", code, stderr.Success)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user