public void SortRanges()
        {
            RangeBuilder b = CreateBuilder();

            b.Add(2, 3);
            b.Add(1, 2);

            Assert.Equal("bytes=2-3,1-2", b.Build());

            b.Options.Value.SortRanges = true;
            Assert.Equal("bytes=1-2,2-3", b.Build());
        }
        public void ShortenRanges()
        {
            RangeBuilder b = CreateBuilder();

            b.Add(0, 10);
            b.Add(11, 100);

            Assert.Equal("bytes=0-10,11-100", b.Build("bytes", 100));

            b.Options.Value.ShortenRanges = true;
            Assert.Equal("bytes=0-10,11-", b.Build("bytes", 100));
        }
        public void MultipleRanges()
        {
            RangeBuilder b = CreateBuilder();

            b.Add(0, 10);
            b.Add(100, 200);

            Assert.Equal("bytes=0-10,100-200", b.Build());

            b.Reset();
            Assert.Null(b.Build());
        }
        public void DiscardInvalidRanges()
        {
            RangeBuilder b = CreateBuilder();

            b.Add(-1, 10);
            b.Add(5, 110);

            Assert.Equal("bytes=-1-10,5-110", b.Build("bytes", 100));

            b.Options.Value.DiscardInvalidRanges = true;
            Assert.Null(b.Build("bytes", 100));

            b.Add(6, 10);
            Assert.Equal("bytes=6-10", b.Build("bytes", 100));
        }
Exemple #5
0
        private static async Task Main()
        {
            //Create a HttpClient
            using (HttpClient client = new HttpClient())
            {
                //Create a builder to the accept-encoding header. We need this to construct which encodings we would like to accept in the response.
                AcceptEncodingBuilder acceptEncoding = new AcceptEncodingBuilder();
                acceptEncoding.Add(AcceptEncodingType.Identity, 0.5f);
                acceptEncoding.Add(AcceptEncodingType.Compress, 0.1f);

                //Add the Accept-Encoding header to the HttpClient
                client.DefaultRequestHeaders.Add(acceptEncoding.HeaderName, acceptEncoding.Build());

                //Now we create some options for the next header. These change the behavior of the builder.
                RangeOptions rangeOptions = new RangeOptions();
                rangeOptions.DiscardInvalidRanges   = true;
                rangeOptions.MergeOverlappingRanges = true;
                rangeOptions.ShortenRanges          = true;
                rangeOptions.SortRanges             = true;

                //Create a RangeBuilder with the options we just made
                RangeBuilder range = new RangeBuilder(Options.Create(rangeOptions));
                range.Add(0, 10_000);
                range.Add(5, 100); //This range is overlapping, but that's okay since MergeOverlappingRanges is set to true.

                //We add the Range header to the HttpClient
                client.DefaultRequestHeaders.Add(range.HeaderName, range.Build());

                //We send the request to a website that echo the headers back to us in the response.
                string echo = await client.GetStringAsync(new Uri("http://scooterlabs.com/echo")).ConfigureAwait(false);

                //The response is written to the console
                Console.WriteLine(echo);
            }
        }
        public void MergeOverlappingRanges()
        {
            RangeBuilder b = CreateBuilder();

            b.Add(0, 10);
            b.Add(10, 11); //start and end is the same as other ranges
            b.Add(0, 10);  //duplicate overlap
            b.Add(5, 11);  //overlap that is not ordered
            b.Add(15, 20); //a non-overlapping range
            b.Add(5, 6);   //small range after overlaps

            Assert.Equal("bytes=0-10,10-11,0-10,5-11,15-20,5-6", b.Build());

            b.Options.Value.MergeOverlappingRanges = true;
            Assert.Equal("bytes=0-11,15-20", b.Build());
        }
Exemple #7
0
        public void ToggleCase_AllItemsConverted()
        {
            var values = new object[, ]
            {
                { "abc", "def", "ghi" },
                { "jkl", "123", 123d },
                { "", null, (int)CVErrEnum.ErrNA }
            };
            var firstCell = new RangeBuilder().WithSingleValue(values[0, 0]).Build();

            var rangeBuilder = new RangeBuilder()
                               .WithEnumrableRanges(new[] { firstCell })
                               .WithMultipleValue(values)
                               .WithWorksheet()
                               .WithAreas()
                               .WithSetValue();
            var selection = rangeBuilder.Build();

            caseToggler.ToggleCase(selection);


            var expected = new object[, ]
            {
                { "ABC", "DEF", "GHI" },
                { "JKL", "123", 123d },
                { "", null, (int)CVErrEnum.ErrNA }
            };

            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <object[, ]>()), Times.Once);
            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.Is <object[, ]>(v => AssertAssignedValue(expected, v))));
        }
Exemple #8
0
        public void TrimSpaces_AllItemsTrimmed()
        {
            var values = new object[, ]
            {
                { "abc ", " def", "  ghi\t" },
                { "jk\r\nl", "   \r\n   \t", "   " },
                { "", null, (int)CVErrEnum.ErrNA }
            };
            var rangeBuilder = new RangeBuilder()
                               .WithWorksheet()
                               .WithAreas()
                               .WithMultipleValue(values)
                               .WithSetValue();
            var selection = rangeBuilder.Build();


            emptySpaceTrimmer.TrimSpaces(selection);

            var expected = new object[, ]
            {
                { "abc", "def", "ghi" },
                { "jk l", null, null },
                { null, null, (int)CVErrEnum.ErrNA }
            };

            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <object[, ]>()), Times.Once);
            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.Is <object[, ]>(v => AssertAssignedValue(expected, v))));
        }
Exemple #9
0
        public void ToggleCase_NoCellsWithLetters_NoChanges()
        {
            var values = new object[, ]
            {
                { "", "123", 123d },
                { "", null, (int)CVErrEnum.ErrNA }
            };
            var cells = new[]
            {
                new RangeBuilder().WithSingleValue("").Build(),
                new RangeBuilder().WithSingleValue("123").Build(),
                new RangeBuilder().WithSingleValue(123d).Build(),
                new RangeBuilder().WithSingleValue("").Build(),
                new RangeBuilder().WithSingleValue(null).Build(),
                new RangeBuilder().WithSingleValue((int)CVErrEnum.ErrNA).Build()
            };
            var rangeBuilder = new RangeBuilder()
                               .WithEnumrableRanges(cells)
                               .WithMultipleValue(values)
                               .WithWorksheet()
                               .WithAreas()
                               .WithSetValue();

            var selection = rangeBuilder.Build();


            caseToggler.ToggleCase(selection);

            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <object[, ]>()), Times.Never);
        }
        public void SingleRange()
        {
            RangeBuilder b = CreateBuilder();

            b.Add(0, 10);

            Assert.Equal("bytes=0-10", b.Build());
        }
Exemple #11
0
        /// <summary>
        /// open cursor
        /// </summary>
        /// <param name="reverse"></param>
        /// <param name="startPosition"></param>
        /// <param name="useLocate">If this is the 1st access to the table, locate values should be considered.
        /// if not - use only ranges</param>
        /// <returns></returns>
        internal GatewayResult OpenCursor(bool reverse, DbPos startPosition, BoudariesFlags boundariesFlag)
        {
            CurrentCursor.CursorDefinition.SetFlagValue(CursorProperties.DirReversed, reverse);
            CurrentCursor.CursorDefinition.StartPosition = startPosition;

            // build the RangeData list
            CurrentCursor.RuntimeCursorData.Ranges = RangeBuilder.Build(boundariesFlag);

            GatewayCommandBase cursorCommand = GatewayCommandsFactory.CreateCursorOpenCommand(CurrentCursor, LocalDataviewManager.LocalManager);

            //String r = CurrentCursor.Serialize();

            return(cursorCommand.Execute());
        }
Exemple #12
0
        public void RepairConditionalFormat_TwoRowsSelected_SecondToFirst()
        {
            var firstRow  = new RangeBuilder().WithConditionalFormatting(0).WithWorksheet().WithPaste();
            var secondRow = new RangeBuilder().WithConditionalFormatting(1).WithWorksheet().WithCopy();

            var rangeBuilder = new RangeBuilder()
                               .WithRows()
                               .WithCount(2)
                               .WithIndexer(new[] { firstRow.Build(), secondRow.Build() });
            var selection = rangeBuilder.Build();

            formatFixer.FillRange(selection);

            secondRow.MockObject.Verify(x => x.Copy(Missing.Value), Times.Once);
            VerifyPasted(firstRow.MockObject);
        }
Exemple #13
0
        public void RemoveAllSpaces_EmptyValue_Null()
        {
            var value        = "   \r\n     \t";
            var rangeBuilder = new RangeBuilder()
                               .WithWorksheet()
                               .WithAreas()
                               .WithSingleValue(value)
                               .WithSetValue();
            var selection = rangeBuilder.Build();


            emptySpaceTrimmer.RemoveAllSpaces(selection);


            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <string>()), Times.Once);
            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.Is <string>(v => v == null)));
        }
Exemple #14
0
        public void RepairConditionalFormat_OneRowSelected_NoAction()
        {
            var firstRow     = new RangeBuilder();
            var rangeBuilder = new RangeBuilder()
                               .WithConditionalFormatting(1)
                               .WithWorksheet()
                               .WithRows()
                               .WithCount(1)
                               .WithIndexer(new[] { firstRow.Build() })
                               .WithPaste();
            var selection = rangeBuilder.Build();

            formatFixer.FillRange(selection);

            firstRow.MockObject.Verify(x => x.Copy(Missing.Value), Times.Never);
            rangeBuilder.MockObject.Verify(x => x.Copy(Missing.Value), Times.Never);
        }
Exemple #15
0
        public void ToggleCase_ConvertedRightOrder(string initial, string result)
        {
            var firstCell    = new RangeBuilder().WithSingleValue(initial).Build();
            var rangeBuilder = new RangeBuilder()
                               .WithEnumrableRanges(new[] { firstCell })
                               .WithSingleValue(initial)
                               .WithWorksheet()
                               .WithAreas()
                               .WithSetValue();
            var selection = rangeBuilder.Build();

            caseToggler.ToggleCase(selection);


            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <string>()), Times.Once);
            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.Is <string>(v => result == v)));
        }
Exemple #16
0
        public void ToggleCase_SingleCell_Converted()
        {
            var rangeBuilder = new RangeBuilder()
                               .WithEnumrableRanges(new[] { new RangeBuilder().WithSingleValue("abc").Build() })
                               .WithWorksheet()
                               .WithAreas()
                               .WithSingleValue("abc")
                               .WithSetValue();
            var selection = rangeBuilder.Build();

            caseToggler.ToggleCase(selection);


            var expected = "ABC";

            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <string>()), Times.Once);
            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.Is <string>(v => expected == v)));
        }
Exemple #17
0
        public void TrimSpaces_SingleCell_Converted()
        {
            var value        = "a   \r\nb     c\t";
            var rangeBuilder = new RangeBuilder()
                               .WithWorksheet()
                               .WithAreas()
                               .WithSingleValue(value)
                               .WithSetValue();
            var selection = rangeBuilder.Build();


            emptySpaceTrimmer.TrimSpaces(selection);


            var expected = "a b c";

            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.IsAny <string>()), Times.Once);
            rangeBuilder.MockObject.Verify(x => x.set_Value(It.IsAny <object>(), It.Is <string>(v => expected == v)));
        }
Exemple #18
0
        private void SetupApplicationForAddWorkbook()
        {
            app = new Mock <Application>(MockBehavior.Strict);
            var wbs = new Mock <Workbooks>(MockBehavior.Strict);
            var wb  = new Mock <Workbook>(MockBehavior.Strict);
            var wss = new Mock <Sheets>(MockBehavior.Strict);
            var ws  = new Mock <Worksheet>(MockBehavior.Strict);
            //wss.Setup(x => x[1]).re
            var rangeBuilder = new RangeBuilder().WithSetValue();

            range = rangeBuilder.MockObject;
            range.Setup(x => x.get_Value(It.IsAny <object>()));
            range.Setup(x => x.set_Value(It.IsAny <object>(), It.IsAny <object>()));

            ws.Setup(x => x.Cells[It.IsAny <int>(), It.IsAny <int>()]).Returns(rangeBuilder.Build());
            wb.Setup(x => x.Worksheets).Returns(wss.Object);
            wss.Setup(x => x[1]).Returns(ws.Object);
            wbs.Setup(x => x.Add(Missing.Value)).Returns(wb.Object);
            app.Setup(x => x.Workbooks).Returns(wbs.Object);
        }
Exemple #19
0
        public void RepairConditionalFormat_MultipleRows_CopiedFromFirstRow()
        {
            var firstRow  = new RangeBuilder().WithConditionalFormatting(1).WithWorksheet().WithCopy();
            var secondRow = new RangeBuilder().WithConditionalFormatting(0).WithWorksheet();
            var thirdRow  = new RangeBuilder().WithConditionalFormatting(1).WithWorksheet();
            var lastRow   = new RangeBuilder().WithConditionalFormatting(0).WithWorksheet();

            var rangeBuilder = new RangeBuilder()
                               .WithConditionalFormatting(1)
                               .WithWorksheet()
                               .WithRows()
                               .WithCount(4)
                               .WithIndexer(new[] { firstRow.Build(), secondRow.Build(), thirdRow.Build(), lastRow.Build() })
                               .WithPaste();
            var selection = rangeBuilder.Build();

            formatFixer.FillRange(selection);

            firstRow.MockObject.Verify(x => x.Copy(Missing.Value), Times.Once);
            VerifyPasted(rangeBuilder.MockObject);
        }
        public void ZeroRange()
        {
            RangeBuilder b = CreateBuilder();

            Assert.Null(b.Build());
        }