package metric_agent

import "testing"

func TestWriteURLBuilder(t *testing.T) {
	// aws
	awsMetric := NewWriteURLBuilder("dnsName").ForAWS().BuildRemoteWrite("metricID")
	expected := "http://dnsName/metricID/api/v1/write"
	if awsMetric != expected {
		t.Errorf("expected %s, got %s", expected, awsMetric)
	}

	awsVMImport := NewWriteURLBuilder("dnsName").ForAWS().BuildVMImport()
	expected = "http://dnsName/topsql-vminsert"
	if awsVMImport != expected {
		t.Errorf("expected %s, got %s", expected, awsVMImport)
	}

	awsLoki := NewWriteURLBuilder("dnsName").ForAWS().BuildLoki()
	expected = "http://dnsName/loki"
	if awsLoki != expected {
		t.Errorf("expected %s, got %s", expected, awsLoki)
	}

	// gcp
	gcpMetric := NewWriteURLBuilder("dnsName").ForGCP("endpointName").BuildRemoteWrite("metricID")
	expected = "http://endpointName.dnsName/metricID/api/v1/write"
	if gcpMetric != expected {
		t.Errorf("expected %s, got %s", expected, gcpMetric)
	}

	gcpVMImport := NewWriteURLBuilder("dnsName").ForGCP("endpointName").BuildVMImport()
	expected = "http://endpointName.dnsName/topsql-vminsert"
	if gcpVMImport != expected {
		t.Errorf("expected %s, got %s", expected, gcpVMImport)
	}

	gcpLoki := NewWriteURLBuilder("dnsName").ForGCP("endpointName").BuildLoki()
	expected = "http://endpointName.dnsName/loki"
	if gcpLoki != expected {
		t.Errorf("expected %s, got %s", expected, gcpLoki)
	}
}
