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)); }
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()); }
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)))); }
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)))); }
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()); }
/// <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()); }
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); }
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))); }
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); }
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))); }
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))); }
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))); }
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); }
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()); }