diff --git a/grade/internal/domain/artifact/values/internal_artifact_id.go b/grade/internal/domain/artifact/values/internal_artifact_id.go new file mode 100644 index 00000000..2f2aefcb --- /dev/null +++ b/grade/internal/domain/artifact/values/internal_artifact_id.go @@ -0,0 +1,17 @@ +package values + +import ( + "github.com/emacsway/grade/grade/internal/domain/seedwork/identity" +) + +func NewInternalArtifactId(value uint) (InternalArtifactId, error) { + id, err := identity.NewIntIdentity(value) + if err != nil { + return InternalArtifactId{}, err + } + return InternalArtifactId{id}, nil +} + +type InternalArtifactId struct { + identity.IntIdentity +} diff --git a/grade/internal/domain/artifact/values/internal_artifact_id_test.go b/grade/internal/domain/artifact/values/internal_artifact_id_test.go new file mode 100644 index 00000000..667e59fd --- /dev/null +++ b/grade/internal/domain/artifact/values/internal_artifact_id_test.go @@ -0,0 +1,17 @@ +package values + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestInternalArtifactIdConstructor(t *testing.T) { + val := uint(3) + id, err := NewInternalArtifactId(val) + if err != nil { + t.Error(err) + t.FailNow() + } + assert.Equal(t, val, id.Value()) +}