flamingo.me/flamingo-commerce/v3@v3.11.0/category/domain/media_test.go (about) 1 package domain 2 3 import ( 4 "reflect" 5 "testing" 6 ) 7 8 func TestMedias_Has(t *testing.T) { 9 type args struct { 10 usage string 11 } 12 13 var ( 14 detailMedia Media = MediaData{MediaUsage: MediaUsageDetail} 15 teaserMedia Media = MediaData{MediaUsage: MediaUsageTeaser} 16 ) 17 tests := []struct { 18 name string 19 m Medias 20 args args 21 want bool 22 }{ 23 { 24 name: "Test empty media has no list item", 25 m: Medias{}, 26 args: args{ 27 usage: MediaUsageTeaser, 28 }, 29 want: false, 30 }, 31 { 32 name: "Test empty media has no detail item", 33 m: Medias{}, 34 args: args{ 35 usage: MediaUsageDetail, 36 }, 37 want: false, 38 }, 39 { 40 name: "Test detail only media has no list item", 41 m: Medias{ 42 detailMedia, 43 }, 44 args: args{ 45 usage: MediaUsageTeaser, 46 }, 47 want: false, 48 }, 49 { 50 name: "Test detail only media has detail item", 51 m: Medias{ 52 teaserMedia, 53 detailMedia, 54 }, 55 args: args{ 56 usage: MediaUsageDetail, 57 }, 58 want: true, 59 }, 60 } 61 for _, tt := range tests { 62 t.Run(tt.name, func(t *testing.T) { 63 if got := tt.m.Has(tt.args.usage); got != tt.want { 64 t.Errorf("Medias.Has() = %v, want %v", got, tt.want) 65 } 66 }) 67 } 68 } 69 70 func TestMedias_Get(t *testing.T) { 71 type args struct { 72 usage string 73 } 74 75 var ( 76 detailMedia Media = MediaData{MediaUsage: MediaUsageDetail} 77 teaserMedia Media = MediaData{MediaUsage: MediaUsageTeaser} 78 ) 79 tests := []struct { 80 name string 81 m Medias 82 args args 83 want Media 84 }{ 85 { 86 name: "Empty media returns nil", 87 m: Medias{}, 88 args: args{ 89 usage: MediaUsageDetail, 90 }, 91 want: MediaData{}, 92 }, 93 { 94 name: "List without list media returns nil", 95 m: Medias{ 96 detailMedia, 97 }, 98 args: args{ 99 usage: MediaUsageTeaser, 100 }, 101 want: MediaData{}, 102 }, 103 { 104 name: "List with list media returns correct media", 105 m: Medias{ 106 detailMedia, 107 teaserMedia, 108 }, 109 args: args{ 110 usage: MediaUsageDetail, 111 }, 112 want: detailMedia, 113 }, 114 } 115 for _, tt := range tests { 116 t.Run(tt.name, func(t *testing.T) { 117 if got := tt.m.Get(tt.args.usage); !reflect.DeepEqual(got, tt.want) { 118 t.Errorf("Medias.Get() = %v, want %v", got, tt.want) 119 } 120 }) 121 } 122 }