public void FromError_ErrorNull_ArgumentNullException()
        {
            // arrange
            // act
            Action action = () => ErrorBuilder.FromError(null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void FromError()
        {
            // arrange
            IError error = new Error("123", null, null, null, null);

            // act
            var builder = ErrorBuilder.FromError(error);

            error = builder.Build();

            // assert
            Assert.Equal("123", error.Message);
        }
        public void FromError_ClearLocations()
        {
            // arrange
            IError error = new Error(
                "123",
                null,
                new List <Location> {
                new Location(1, 2)
            },
                null,
                null);

            // act
            error = ErrorBuilder.FromError(error).ClearLocations().Build();

            // assert
            Assert.Equal("123", error.Message);
            Assert.Null(error.Locations);
        }
        public void FromError_ClearExtensions()
        {
            // arrange
            IError error = new Error(
                "123",
                null,
                null,
                new Dictionary <string, object>
            {
                { "foo", "bar" }
            },
                null);

            // act
            error = ErrorBuilder.FromError(error).ClearExtensions().Build();

            // assert
            Assert.Equal("123", error.Message);
            Assert.Null(error.Extensions);
        }
        public void FromError_WithLocations()
        {
            // arrange
            IError error = new Error(
                "123",
                null,
                new List <Location> {
                new Location(1, 2)
            },
                null,
                null);

            // act
            var builder = ErrorBuilder.FromError(error);

            error = builder.Build();

            // assert
            Assert.Equal("123", error.Message);
            Assert.Collection(error.Locations,
                              t => Assert.Equal(1, t.Line));
        }
        public void FromError_WithExtensions()
        {
            // arrange
            IError error = new Error(
                "123",
                null,
                null,
                new Dictionary <string, object>
            {
                { "foo", "bar" }
            },
                null);

            // act
            var builder = ErrorBuilder.FromError(error);

            error = builder.Build();

            // assert
            Assert.Equal("123", error.Message);
            Assert.Collection(error.Extensions,
                              t => Assert.Equal("bar", t.Value));
        }