Example #1
0
        public void Encode_InvalidContentLength_ShouldThrowException()
        {
            Action action = () => UpcAEncoder.Encode("123");

            action.Should().Throw <InvalidOperationException>()
            .WithMessage("Invalid content length. Should be 11 if the code does not include a checksum, 12 if the code already includes a checksum");
        }
Example #2
0
        public void Encode_InvalidChecksum_ShouldThrowException()
        {
            Action action = () => UpcAEncoder.Encode("012345678913");

            action.Should().Throw <InvalidOperationException>()
            .WithMessage("Checksum mismatch");
        }
Example #3
0
        public void Encode_InvalidCode_ShouldThrowException()
        {
            Action action = () => UpcAEncoder.Encode("invalid");

            action.Should().Throw <InvalidOperationException>()
            .WithMessage("Can only encode numerical digits (0-9)");
        }
Example #4
0
        public void Encode(string testCode, string testResult, string kind, bool checkContent)
        {
            IBarcode code = UpcAEncoder.Encode(testCode);

            if (checkContent)
            {
                code.Content.Should().Be(testCode);
            }

            code.Bounds.X.Should().Be(testResult.Length);
            code.Bounds.Y.Should().Be(1);
            code.Metadata.CodeKind.Should().Be(kind);
            code.Metadata.Dimensions.Should().Be(1);

            string encoded = string.Empty;
            int    i       = 0;

            foreach (var r in testResult)
            {
                encoded += code.At(i++, 0) ? "1" : "0";
            }
            encoded.Should().Be(testResult);
        }