package main

import (
	"sync"
	"testing"
	"time"
)

func TestEklentiSlotSinir(t *testing.T) {
	anahtar := "test-slot-sinir"
	var bosaltlar []func()
	for i := 0; i < eklentiEsZamanliSinir; i++ {
		b, err := eklentiSlotAl(anahtar)
		if err != nil {
			t.Fatalf("slot %d alinamadi: %v", i, err)
		}
		bosaltlar = append(bosaltlar, b)
	}
	// Sinir dolu: kisa surede (beklemeden) slot alinmamali
	eski := eklentiSlotBeklemeZamani
	_ = eski
	var wg sync.WaitGroup
	wg.Add(1)
	go func() {
		defer wg.Done()
		b, err := eklentiSlotAl(anahtar)
		if err == nil {
			b()
		}
	}()
	time.Sleep(50 * time.Millisecond)
	for _, b := range bosaltlar {
		b()
	}
	wg.Wait()
}
