public void GetModifiedAssemblies()
        {
            AssemblyTracker tracker = new AssemblyTracker (new[] { _assemblyDefinition1, _assemblyDefinition2 }, new TypeDefinitionCache ());
              tracker.MarkModified (_assemblyDefinition1);

              var result = tracker.GetModifiedAssemblies();
              Assert.That (result, Is.EquivalentTo (new[] { _assemblyDefinition1 }));
        }
        public void MarkModified_NotTracked()
        {
            AssemblyTracker tracker = new AssemblyTracker (new[] { _assemblyDefinition1 }, new TypeDefinitionCache ());

              Assert.Throws<ArgumentException> (() => tracker.MarkModified (_assemblyDefinition2));
        }
        public void MarkUnmodified()
        {
            AssemblyTracker tracker = new AssemblyTracker (new[] { _assemblyDefinition1 }, new TypeDefinitionCache ());
              tracker.MarkModified (_assemblyDefinition1);
              Assert.That (tracker.IsModified (_assemblyDefinition1), Is.True);

              tracker.MarkUnmodified (_assemblyDefinition1);

              Assert.That (tracker.IsModified (_assemblyDefinition1), Is.False);
        }
        private IAssemblyTracker CreateTracker(params AssemblyDefinition[] modifiedAssemblies)
        {
            // Should AssemblyTracker get external dependencies (or become otherwise more complex), consider using a stub instead of the real tracker.
              var tracker = new AssemblyTracker (new[] { _assemblyDefinition1, _assemblyDefinition2 }, new TypeDefinitionCache ());

              foreach (var modifiedAssembly in modifiedAssemblies)
            tracker.MarkModified (modifiedAssembly);

              return tracker;
        }