1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-27 21:05:53 +00:00
FrankerFaceZ/socketserver/server/usercount_test.go
2016-04-28 14:36:59 -07:00

68 lines
1.7 KiB
Go

package server
import (
"net/http/httptest"
"net/url"
"os"
"testing"
"time"
"github.com/satori/go.uuid"
)
func TestUniqueConnections(t *testing.T) {
const TestExpectedCount = 1000
testStart := time.Now().In(CounterLocation)
var server *httptest.Server
var backendExpected = NewTBackendRequestChecker(t,
TExpectedBackendRequest{200, bPathAnnounceStartup, &url.Values{"startup": []string{"1"}}, "", nil},
)
server, _, _ = TSetup(SetupWantSocketServer|SetupWantBackendServer, backendExpected)
defer server.CloseClientConnections()
defer unsubscribeAllClients()
defer backendExpected.Close()
dumpUniqueUsers()
for i := 0; i < TestExpectedCount; i++ {
uuid := uuid.NewV4()
uniqueUserChannel <- uuid
uniqueUserChannel <- uuid
}
TCheckHLLValue(t, TestExpectedCount, readCurrentHLL())
token := <-uniqueCtrWritingToken
uniqueCounter.End = time.Now().In(CounterLocation).Add(-1 * time.Second)
uniqueCtrWritingToken <- token
rolloverCounters_do()
for i := 0; i < TestExpectedCount; i++ {
uuid := uuid.NewV4()
uniqueUserChannel <- uuid
uniqueUserChannel <- uuid
}
TCheckHLLValue(t, TestExpectedCount, readCurrentHLL())
// Check: Merging the two days results in 2000
// note: rolloverCounters_do() wrote out a file, and loadHLL() is reading it back
// TODO need to rewrite some of the test to make this work
var loadDest PeriodUniqueUsers
loadHLL(testStart, &loadDest)
token = <-uniqueCtrWritingToken
loadDest.Counter.Merge(uniqueCounter.Counter)
uniqueCtrWritingToken <- token
TCheckHLLValue(t, TestExpectedCount*2, loadDest.Counter.Count())
}
func TestUniqueUsersCleanup(t *testing.T) {
// Not a test. Removes old files.
os.RemoveAll(uniqCountDir)
}