65 lines
1.9 KiB
Go
65 lines
1.9 KiB
Go
package proxy_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/veylant/ia-gateway/internal/pii"
|
|
"github.com/veylant/ia-gateway/internal/proxy"
|
|
)
|
|
|
|
func TestBuildEntityMap(t *testing.T) {
|
|
entities := []pii.Entity{
|
|
{Pseudonym: "[PII:EMAIL:abc12345]", OriginalValue: "alice@example.com"},
|
|
{Pseudonym: "[PII:PHONE_FR:def67890]", OriginalValue: "0612345678"},
|
|
}
|
|
m := proxy.BuildEntityMap(entities)
|
|
assert.Equal(t, "alice@example.com", m["[PII:EMAIL:abc12345]"])
|
|
assert.Equal(t, "0612345678", m["[PII:PHONE_FR:def67890]"])
|
|
}
|
|
|
|
func TestBuildEntityMap_EmptyPseudonymSkipped(t *testing.T) {
|
|
entities := []pii.Entity{
|
|
{Pseudonym: "", OriginalValue: "ghost"},
|
|
}
|
|
m := proxy.BuildEntityMap(entities)
|
|
assert.Empty(t, m)
|
|
}
|
|
|
|
func TestDepseudonymize_SingleToken(t *testing.T) {
|
|
text := "Contact [PII:EMAIL:abc12345] for info."
|
|
m := map[string]string{"[PII:EMAIL:abc12345]": "alice@example.com"}
|
|
got := proxy.Depseudonymize(text, m)
|
|
assert.Equal(t, "Contact alice@example.com for info.", got)
|
|
}
|
|
|
|
func TestDepseudonymize_MultipleTokens(t *testing.T) {
|
|
text := "[PII:EMAIL:abc12345] and [PII:PHONE_FR:def67890]"
|
|
m := map[string]string{
|
|
"[PII:EMAIL:abc12345]": "alice@example.com",
|
|
"[PII:PHONE_FR:def67890]": "0612345678",
|
|
}
|
|
got := proxy.Depseudonymize(text, m)
|
|
assert.Contains(t, got, "alice@example.com")
|
|
assert.Contains(t, got, "0612345678")
|
|
}
|
|
|
|
func TestDepseudonymize_UnknownTokenLeftAsIs(t *testing.T) {
|
|
text := "[PII:EMAIL:deadbeef]"
|
|
got := proxy.Depseudonymize(text, map[string]string{})
|
|
assert.Equal(t, "[PII:EMAIL:deadbeef]", got)
|
|
}
|
|
|
|
func TestDepseudonymize_NoTokensNoChange(t *testing.T) {
|
|
text := "Bonjour, tout va bien."
|
|
got := proxy.Depseudonymize(text, map[string]string{"[PII:EMAIL:abc12345]": "x"})
|
|
assert.Equal(t, text, got)
|
|
}
|
|
|
|
func TestDepseudonymize_EmptyMapNoChange(t *testing.T) {
|
|
text := "[PII:EMAIL:abc12345]"
|
|
got := proxy.Depseudonymize(text, nil)
|
|
assert.Equal(t, text, got)
|
|
}
|