Esempio n. 1
0
        public int CompareUnitTestElements([NotNull] IUnitTestElement firstElement, [NotNull] IUnitTestElement secondElement)
        {
            if (firstElement.State == UnitTestElementState.Dynamic || secondElement.State == UnitTestElementState.Dynamic)
            {
                return(0);
            }

            if (firstElement is ClassTestElement && secondElement is ClassTestElement)
            {
                return(string.Compare(firstElement.ShortName, secondElement.ShortName, StringComparison.Ordinal));
            }

            // TODO: Performance critical. should cache test file
            var firstLocation  = firstElement.GetDisposition().Locations.SingleOrDefault();
            var secondLocation = secondElement.GetDisposition().Locations.SingleOrDefault();

            if (firstLocation == null || secondLocation == null)
            {
                return(0);
            }

            return(firstLocation.NavigationRange.StartOffset.CompareTo(secondLocation.NavigationRange.StartOffset));
        }