package com.sonymusic

import org.junit.jupiter.api.Test

import static org.junit.jupiter.api.Assertions.assertThrows

class ECRImageTest {
    @Test
    public void testFromStringValid() {
        ECRImage image = ECRImage.fromString("123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repo:latest")

        assert image.accountId == "123456789012"
        assert image.region == "us-west-2"
        assert image.registry == "123456789012.dkr.ecr.us-west-2.amazonaws.com"
        assert image.repository == "my-repo"
        assert image.tag == "latest"
    }

    @Test
    public void testFromStringNoRegistry() {
        assertThrows(IllegalArgumentException.class, {
            ECRImage.fromString("my-repo:latest")
        })
    }

    @Test
    public void testFromStringInvalidRegistry() {
        assertThrows(IllegalArgumentException.class, {
            ECRImage.fromString("123456789012.dkr.us-west-2.amazonaws.com/my-repo:latest")
        })
    }

    @Test
    public void testFromStringNoTag() {
        assertThrows(IllegalArgumentException.class, {
            ECRImage.fromString("123456789012.dkr.us-west-2.amazonaws.com/my-repo")
        })
    }
}
