package main

import "testing"

func TestSetLimit(t *testing.T) {
	c := Config{Limit: 80}
	if err := setLimit(&c, 8080); err != nil || c.Limit != 8080 {
		t.Fatalf("setLimit: %v, %+v", err, c)
	}
	if err := setLimit(&c, 40000); err == nil || c.Limit != 8080 {
		t.Fatalf("overflow must leave value unchanged: %v, %+v", err, c)
	}
	var nilConfig *Config
	for _, dst := range []any{nil, nilConfig, c, new(int), &struct{ Limit string }{}, &struct{}{}, &struct{ *Config }{}} {
		if err := setLimit(dst, 80); err == nil {
			t.Fatalf("accepted %T", dst)
		}
	}
}
