Skip to content
Snippets Groups Projects
Select Git revision
  • 6c64165766405de3b837720e1dc74e8ba59df286
  • main default protected
  • trading_hours
  • refactor_trading_hours
  • audit_cleaning_cater_for_non_struct_fields
  • remove-info-logs
  • sl-refactor
  • 18-use-scan-for-param-values
  • 17-order-search-results
  • 4-simplify-framework-2
  • 1-http-error
  • v1.297.0
  • v1.296.0
  • v1.295.0
  • v1.294.0
  • v1.293.0
  • v1.292.0
  • v1.291.0
  • v1.290.0
  • v1.289.0
  • v1.288.0
  • v1.287.0
  • v1.286.0
  • v1.285.0
  • v1.284.0
  • v1.283.0
  • v1.282.0
  • v1.281.0
  • v1.280.0
  • v1.279.0
  • v1.278.0
31 results

db_utils_test.go

Blame
  • db_utils_test.go 2.01 KiB
    package db_utils
    
    import (
    	"testing"
    )
    
    func TestPageParams_Validate(t *testing.T) {
    	tests := []struct {
    		name    string
    		params  PageParams
    		wantErr bool
    	}{
    		{"ValidParams", PageParams{Limit: 10, Offset: 5}, false},
    		{"NegativeLimit", PageParams{Limit: -1, Offset: 5}, true},
    		{"NegativeOffset", PageParams{Limit: 10, Offset: -1}, true},
    	}
    
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    			err := tt.params.Validate()
    			if (err != nil) != tt.wantErr {
    				t.Errorf("Validate() error = %v, wantErr %v", err, tt.wantErr)
    			}
    		})
    	}
    }
    
    func TestPageParams_EnforceLimit(t *testing.T) {
    	tests := []struct {
    		name   string
    		params PageParams
    		want   int64
    	}{
    		{"NoLimit", PageParams{Limit: 0}, 20},
    		{"NegativeLimit", PageParams{Limit: -5}, 20},
    		{"PositiveLimit", PageParams{Limit: 10}, 10},
    	}
    
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    			tt.params.EnforceLimit()
    			if tt.params.Limit != tt.want {
    				t.Errorf("EnforceLimit() = %v, want %v", tt.params.Limit, tt.want)
    			}
    		})
    	}
    }
    
    func TestValidateDateFilters(t *testing.T) {
    	type args struct {
    		params                any
    		dateFiltersToValidate []string
    	}
    	tests := []struct {
    		name    string
    		args    args
    		wantErr bool
    	}{
    		{
    			"ValidDateFilter",
    			args{params: struct {
    				Date string `json:"date"`
    			}{Date: "2023-10-01T00:00:00Z"}, dateFiltersToValidate: []string{"date"}},
    			false,
    		},
    		{
    			"InvalidDateFilter",
    			args{params: struct {
    				Date string `json:"date"`
    			}{Date: "invalid-date"}, dateFiltersToValidate: []string{"date"}},
    			true,
    		},
    		{
    			"MissingDateFilter",
    			args{params: struct {
    				Date string `json:"date"`
    			}{Date: "2023-10-01T00:00:00Z"}, dateFiltersToValidate: []string{"non_existent_date"}},
    			false,
    		},
    	}
    
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    			if err := ValidateDateFilters(tt.args.params, tt.args.dateFiltersToValidate...); (err != nil) != tt.wantErr {
    				t.Errorf("ValidateDateFilters() error = %v, wantErr %v", err, tt.wantErr)
    			}
    		})
    	}
    }