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  }