public void Initialization()
        {
            TrackedAssembly assembly = new TrackedAssembly(_assemblyDefinition);

              Assert.That (assembly.AssemblyDefinition, Is.SameAs (_assemblyDefinition));
              Assert.That (assembly.IsModified, Is.False);
              Assert.That (assembly.ReverseReferences, Is.Empty);
        }
        public void MarkModified()
        {
            TrackedAssembly assembly = new TrackedAssembly (_assemblyDefinition);
              Assert.That (assembly.IsModified, Is.False);

              assembly.MarkModified();

              Assert.That (assembly.IsModified, Is.True);
        }
        public void AddReverseReference()
        {
            TrackedAssembly assembly = new TrackedAssembly (_assemblyDefinition);
              TrackedAssembly assembly2 = new TrackedAssembly (_assemblyDefinition);

              assembly.AddReverseReference (assembly2);

              Assert.That (assembly.ReverseReferences, Has.Member (assembly2));
        }
        public void MarkModified_AlsoMarksReverseReference()
        {
            TrackedAssembly assembly = new TrackedAssembly (_assemblyDefinition);
              TrackedAssembly assembly2 = new TrackedAssembly (_assemblyDefinition);
              assembly.AddReverseReference (assembly2);
              Assert.That (assembly.IsModified, Is.False);
              Assert.That (assembly2.IsModified, Is.False);

              assembly.MarkModified ();

              Assert.That (assembly.IsModified, Is.True);
              Assert.That (assembly2.IsModified, Is.True);
        }
        public void MarkModified_CanHandleCyclicReferences()
        {
            TrackedAssembly assembly = new TrackedAssembly (_assemblyDefinition);
              TrackedAssembly assembly2 = new TrackedAssembly (_assemblyDefinition);
              TrackedAssembly assembly3 = new TrackedAssembly (_assemblyDefinition);
              assembly.AddReverseReference (assembly2);
              assembly2.AddReverseReference (assembly3);
              assembly3.AddReverseReference (assembly);
              Assert.That (assembly.IsModified, Is.False);
              Assert.That (assembly2.IsModified, Is.False);
              Assert.That (assembly3.IsModified, Is.False);

              assembly.MarkModified ();

              Assert.That (assembly.IsModified, Is.True);
              Assert.That (assembly2.IsModified, Is.True);
              Assert.That (assembly3.IsModified, Is.True);
        }
 public void AddReverseReference(TrackedAssembly reverseReference)
 {
     ArgumentUtility.CheckNotNull("reverseReference", reverseReference);
     _reverseReferences.Add(reverseReference);
 }
 public void AddReverseReference(TrackedAssembly reverseReference)
 {
     ArgumentUtility.CheckNotNull ("reverseReference", reverseReference);
       _reverseReferences.Add (reverseReference);
 }