public void PredictReturnsCorrectResult(string patternString, string[] pushDirectory, string expectSegment, bool expectWildcard) { var builder = new PatternBuilder(); var pattern = builder.Build(patternString) as IRaggedPattern; Assert.NotNull(pattern); var context = new PatternContextRaggedInclude(pattern); PatternContextHelper.PushDirectory(context, pushDirectory); context.Declare((segment, last) => { if (expectSegment != null) { var mockSegment = segment as LiteralPathSegment; Assert.NotNull(mockSegment); Assert.Equal(false, last); Assert.Equal(expectSegment, mockSegment.Value); } else { Assert.Equal(Microsoft.DotNet.ProjectModel.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment.MatchAll, segment); } }); }
public void PredictNotCallBackWhenEnterUnmatchDirectory(string patternString, string[] pushDirectory) { var builder = new PatternBuilder(); var pattern = builder.Build(patternString) as IRaggedPattern; var context = new PatternContextRaggedInclude(pattern); PatternContextHelper.PushDirectory(context, pushDirectory); context.Declare((segment, last) => { Assert.False(true, "No segment should be declared."); }); }
public void PredictBeforeEnterDirectoryShouldThrow() { var builder = new PatternBuilder(); var pattern = builder.Build("**") as IRaggedPattern; var context = new PatternContextRaggedInclude(pattern); Assert.Throws<InvalidOperationException>(() => { context.Declare((segment, last) => { Assert.False(true, "No segment should be declared."); }); }); }