コード例 #1
0
		public void DotNetNameUsedWhenAddingClasses()
		{
			MockClass c = new MockClass("MyTests.MyClass.InnerClass", "MyTests.MyClass+InnerClass");
			List<IClass> classes = new List<IClass>();
			classes.Add(c);
			
			RemovedClasses removedClasses = new RemovedClasses();
			removedClasses.Add(classes);
			removedClasses.Remove(c);
			
			Assert.AreEqual(0, removedClasses.GetMissingClasses().Count);
		}
コード例 #2
0
		public void Init()
		{
			myClass = new MockClass("MyTests.MyClass");
			innerClass = new MockClass("MyTests.MyClass.InnerClass", "MyTests.MyClass+InnerClass");
			myClass.InnerClasses.Add(innerClass);

			anotherClass = new MockClass("MyTests.AnotherClass");
			
			List<IClass> classes = new List<IClass>();
			classes.Add(myClass);
			classes.Add(anotherClass);
			
			removedClasses = new RemovedClasses();
			removedClasses.Add(classes);
		}
コード例 #3
0
        /// <summary>
        /// Updates the classes and methods based on the new parse information.
        /// </summary>
        /// <param name="oldUnit">The old compiliation unit
        /// (ParseInformationEventArgs.ParseInformation.BestCompilationUnit as ICompilationUnit)</param>
        /// <param name="newUnit">The new compilation unit
        /// (ParseInformationEventArgs.CompilationUnit).</param>
        public void UpdateParseInfo(ICompilationUnit oldUnit, ICompilationUnit newUnit)
        {
            if (!IsParseInfoForThisProject(oldUnit, newUnit))
            {
                return;
            }

            RemovedClasses removedClasses = new RemovedClasses();

            if (oldUnit != null)
            {
                removedClasses.Add(oldUnit.Classes);
            }
            if (newUnit != null)
            {
                foreach (IClass c in newUnit.Classes)
                {
                    UpdateTestClass(c);
                    foreach (IClass innerClass in new InnerClassEnumerator(c))
                    {
                        UpdateTestClass(innerClass);
                        removedClasses.Remove(innerClass);
                    }
                    removedClasses.Remove(c);
                }
            }

            // Remove missing classes.
            foreach (IClass c in removedClasses.GetMissingClasses())
            {
                IClass existingClass = GetExistingTestClassInProject(c);
                if (existingClass != null)
                {
                    UpdateTestClass(existingClass);
                }
                else
                {
                    TestClasses.Remove(c.DotNetName);
                }
            }
        }
コード例 #4
0
		/// <summary>
		/// Updates the classes and methods based on the new parse information.
		/// </summary>
		/// <param name="oldUnit">The old compiliation unit
		/// (ParseInformationEventArgs.ParseInformation.BestCompilationUnit as ICompilationUnit)</param>
		/// <param name="newUnit">The new compilation unit
		/// (ParseInformationEventArgs.CompilationUnit).</param>
		public void UpdateParseInfo(ICompilationUnit oldUnit, ICompilationUnit newUnit)
		{
			if (!IsParseInfoForThisProject(oldUnit, newUnit)) {
				return;
			}
			
			RemovedClasses removedClasses = new RemovedClasses();
			
			if (oldUnit != null) {
				removedClasses.Add(oldUnit.Classes);
			}
			if (newUnit != null) {
				foreach (IClass c in newUnit.Classes) {
					UpdateTestClass(c);
					foreach (IClass innerClass in c.InnerClasses) {
						UpdateTestClass(innerClass);
						removedClasses.Remove(innerClass);
					}
					removedClasses.Remove(c);
				}
			}
			
			// Remove missing classes.
			foreach (IClass c in removedClasses.GetMissingClasses()) {
				IClass existingClass = GetExistingTestClassInProject(c);
				if (existingClass != null) {
					UpdateTestClass(existingClass);
				} else {
					TestClasses.Remove(c.DotNetName);
				}
			}
		}