コード例 #1
0
            public void FixDesignTimeUri(string inUrl, string outUrl)
            {
                var inUri = ResourceDictionaryUtilities.ToPackUri(inUrl);

                var outUri = SharedDictionaryManager.FixDesignTimeUri(inUri);

                Assert.That(outUri.ToString(), Is.EqualTo(outUrl));
            }
コード例 #2
0
            public void IsEqualToSet(string url)
            {
                using (SharedDictionaryManager.CachingFactory.GetInstanceForDomain())
                {
                    var uri    = ResourceDictionaryUtilities.ToPackUri(url);
                    var target = new SharedDictionaryManager();

                    target.Source = uri;

                    Assert.That(target.Source, Is.EqualTo(uri));
                }
            }
コード例 #3
0
            public void CalledTwice_DisposeNotCalled()
            {
                using (var factory = SharedDictionaryManager.GetCurrentDomainCachingFactory())
                {
                    var disposable = Substitute.For <IDisposable>();
                    factory.TryAddDisposable(disposable);

                    SharedDictionaryManager.GetCurrentDomainCachingFactory();

                    disposable.Received(0).Dispose();
                }
            }
コード例 #4
0
            public void InvokeMethodOnNewAssembly_DisposeCalled()
            {
                using (var factory = SharedDictionaryManager.GetCurrentDomainCachingFactory())
                {
                    var disposable = Substitute.For <IDisposable>();
                    factory.TryAddDisposable(disposable);

                    using (InvokeMethodOnNewAssembly(SharedDictionaryManager.GetCurrentDomainCachingFactory))
                    {
                        disposable.Received(1).Dispose();
                    }
                }
            }
コード例 #5
0
            public void SetResourceDictionarySourceOnDifferentInstances_ExpectDifferentObjects(string url)
            {
                var setup = new AppDomainSetup {
                    ApplicationBase = "NOTHING_HERE"
                };

                AppDomainContext.Invoke(setup, () =>
                {
                    var shared     = new SharedDictionaryManager();
                    var expectDump = ResourceDictionaryUtilities.DumpMergedDictionaries(shared, url);

                    var loading = new LoadingResourceDictionary();
                    var dump    = ResourceDictionaryUtilities.DumpMergedDictionaries(loading, url);

                    Assert.That(dump, Is.Not.EqualTo(expectDump));
                });
            }
コード例 #6
0
            public void InvokeMethodOnNewAssembly_DisposeCalled()
            {
                // HACK: Why does this need to be in app domain?
                AppDomainContext.Invoke(new AppDomainSetup {
                    ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
                }, () =>
                {
                    using (var factory = SharedDictionaryManager.GetCurrentDomainCachingFactory())
                    {
                        var disposable = Substitute.For <IDisposable>();
                        factory.TryAddDisposable(disposable);

                        using (InvokeMethodOnNewAssembly(SharedDictionaryManager.GetCurrentDomainCachingFactory))
                        {
                            disposable.Received(1).Dispose();
                        }
                    }
                });
            }
コード例 #7
0
                internal string DumpMergedDictionariesSharedDictionaryManager(string url)
                {
                    var target = new SharedDictionaryManager();

                    return(ResourceDictionaryUtilities.DumpMergedDictionaries(target, url));
                }
コード例 #8
0
                internal string DumpMergedDictionariesSharedDictionaryManager(params string[] urls)
                {
                    var target = new SharedDictionaryManager();

                    return(DumpMergedDictionaries(target, urls));
                }
コード例 #9
0
        private void AddBranchAdornment(ITextViewLine line, SnapshotSpan span, LineCoverage coverage)
        {
            var diameter = _textView.LineHeight / _branchCoverageSpotHeightDivider;
            var spacing  = _branchCoverageSpotGap + diameter;
            var top      = (line.Height - diameter) / 2d;

            var brush = _brushesAndPens[coverage.BranchCoverageState].Brush;
            var pen   = _brushesAndPens[coverage.BranchCoverageState].Pen;

            var groupIndex = 0;
            var index      = 0;
            var left       = _sequenceCoverageLineWidth * 1.5d;

            foreach (var branchPoint in coverage.BranchesVisited)
            {
                foreach (var branch in branchPoint)
                {
                    var rect     = new Rect(left, line.Top + top, diameter, diameter);
                    var geometry = new EllipseGeometry(rect);
                    geometry.Freeze();

                    var brushOverride = brush;
                    var penOverride   = pen;
                    if (branch && coverage.BranchVisitors[groupIndex][index].Any(p => SelectedTests.Contains(p)))
                    {
                        brushOverride = _selectedBrushAndPen.Brush;
                        penOverride   = _selectedBrushAndPen.Pen;
                    }

                    var drawing = new GeometryDrawing(branch ? brushOverride : null, penOverride, geometry);
                    drawing.Freeze();

                    var drawingImage = new DrawingImage(drawing);
                    drawingImage.Freeze();

                    var image = new Image()
                    {
                        Source = drawingImage
                    };

                    var testMethod = coverage.BranchVisitors[groupIndex][index].FirstOrDefault();
                    if (testMethod != null)
                    {
                        image.MouseLeftButtonDown += (o, e) => e.Handled = true;
                        image.MouseLeftButtonUp   += (o, e) => _selectTestCommand.Execute(testMethod);
                        image.Cursor = Cursors.Hand;
                        image.Tag    = coverage.BranchVisitors[groupIndex][index].ToArray();
                        image.MouseRightButtonDown += (o, e) => e.Handled = true;
                        image.MouseRightButtonUp   += OnTestCoverageRightButtonUp;
                        SharedDictionaryManager.InitializeDictionaries(image.Resources.MergedDictionaries);
                    }

                    Canvas.SetLeft(image, geometry.Bounds.Left);
                    Canvas.SetTop(image, geometry.Bounds.Top);

                    _adornmentLayer.AddAdornment(AdornmentPositioningBehavior.TextRelative, span, null, image, null);

                    left += spacing;
                    index++;
                }
                groupIndex++;
                index = 0;

                left += spacing;
            }
        }
コード例 #10
0
        private void AddSequenceAdornment(ITextViewLine line, SnapshotSpan span, LineCoverage coverage)
        {
            var rect     = new Rect(0d, line.Top, _sequenceCoverageLineWidth, line.Height);
            var geometry = new RectangleGeometry(rect);

            geometry.Freeze();

            var brush = _brushesAndPens[coverage.SequenceCoverageState].Brush;

            if (coverage.SequenceCoverageState == CoverageState.Covered &&
                coverage.LineVisitors.Any(p => SelectedTests.Contains(p)))
            {
                brush = _selectedBrushAndPen.Brush;
            }

            var drawing = new GeometryDrawing(brush, null, geometry);

            drawing.Freeze();

            var drawingImage = new DrawingImage(drawing);

            drawingImage.Freeze();

            var toolTip = new StackPanel();

            var header = new TextBlock()
            {
                Text         = string.Format(Resources.VisitorCount, coverage.VisitCount),
                TextWrapping = TextWrapping.Wrap
            };

            toolTip.Children.Add(header);

            var image = new Image()
            {
                Source  = drawingImage,
                ToolTip = toolTip
            };

            Canvas.SetLeft(image, geometry.Bounds.Left);
            Canvas.SetTop(image, geometry.Bounds.Top);
            SharedDictionaryManager.InitializeDictionaries(image.Resources.MergedDictionaries);

            if (coverage.LineVisitors.Count > 0)
            {
                var description = new TextBlock()
                {
                    Text         = string.Join("\r\n", coverage.LineVisitors.Select(p => p.ShortName)),
                    TextWrapping = TextWrapping.Wrap,
                    Opacity      = 0.7d
                };
                toolTip.Children.Add(description);

                image.Tag = coverage.LineVisitors.ToArray();
                image.MouseRightButtonDown += (o, e) => e.Handled = true;
                image.MouseRightButtonUp   += OnTestCoverageRightButtonUp;

                image.MouseLeftButtonDown += (o, e) => e.Handled = true;
                image.MouseLeftButtonUp   += (o, e) => _selectTestCommand.Execute(coverage.LineVisitors.First());
                image.Cursor = Cursors.Hand;
            }

            _adornmentLayer.AddAdornment(AdornmentPositioningBehavior.TextRelative, span, null, image, null);
        }
コード例 #11
0
ファイル: View.cs プロジェクト: maosierra/AxoTools
 public View()
 {
     SharedDictionaryManager.InitializeDictionaries(Resources.MergedDictionaries);
     ViewModel = ContainerProvider.Container?.Resolve <T>();
     Loaded   += OnLoaded;
 }