public void BothAddedUserResolved()
        {
            var resolver = new TestConflictResolver<ConfigitPackageReference>( ConflictItemType.Local );
              var merger = new PackagesConfigMerger( CurrentOperation.Merge, resolver );

              var result = merger.Merge( "TestFilePath", _packageEmpty, _packageV1, _packageV2Net46 ).ToList();

              Assert.That( resolver.Called, Is.EqualTo( true ) );
              Assert.That( result, Is.EquivalentTo( _packageV1 ) );
        }
        public void BothUpdatedAutoResolved()
        {
            var resolver = new TestConflictResolver<ConfigitPackageReference>( ConflictItemType.Local );
              var merger = new PackagesConfigMerger( CurrentOperation.Merge, resolver );

              // CurrentOperation.Merge causes local to be set to mine
              var result = merger.Merge( "TestFilePath", _packageV0, _packageV1, _packageV2 ).ToList();

              Assert.That( resolver.Called, Is.EqualTo( false ) );
              Assert.That( result, Is.EquivalentTo( _packageV2 ) );
        }
        public void UsesDefaultResolverIfOtherDifferencesExist()
        {
            var defaultResolver = new TestConflictResolver<ConfigitPackageReference>( ConflictItemType.Base );

              PackageConflictResolver resolver = new PackageConflictResolver( defaultResolver );

              var conflict = new Conflict<ConfigitPackageReference>( "TestFilePath", PackageKey, _packageV0, _packageV1, _packageV2UserInstalled );

              var result = resolver.Resolve( conflict );

              Assert.That( defaultResolver.Called, Is.EqualTo( true ) );
              Assert.That( result.ResolvedItem, Is.EqualTo( _packageV0 ) );
        }
    public void WhenIncludeCannotBeResolved() {
      var userConflictResolver = new TestConflictResolver<Reference>( ConflictItemType.Local );

      ReferenceConflictResolver resolver = new ReferenceConflictResolver( userConflictResolver );

      var baseReference = new Reference(
        "NuGet.Frameworks, Version=$(MyVersion), Culture=neutral, PublicKeyToken=2e465378e3b1a8dd, processorArchitecture=MSIL",
        false, false,
        @"\bin\$(Configuration)\NuGet.Frameworks.dll" );

      var mineReference = new Reference( "NuGet.Frameworks, Version=$(mine), Culture=neutral, PublicKeyToken=2e465378e3b1a8dd, processorArchitecture=MSIL",
                                        false, false, @"\bin\$(Configuration)\NuGet.Frameworks.dll" );

      var incomingReference = new Reference( "NuGet.Frameworks, Version=$(incoming), Culture=neutral, PublicKeyToken=2e465378e3b1a8dd, processorArchitecture=MSIL",
                                             false, false, @"\bin\$(Configuration)\NuGet.Frameworks.dll" );

      var resolved = resolver.Resolve( new Conflict<Reference>( "myproject.csproj", "Configit.Dummy.dll", baseReference, mineReference, incomingReference ) );

      // We expect fall back to user resolver
      Assert.That( userConflictResolver.Called );
      Assert.That( resolved.ResolvedWith, Is.EqualTo( ConflictItemType.Local ) );
    }
        public void MineDeletedTheirsUpdated_ResolveMine()
        {
            var resolver = new TestConflictResolver<ConfigitPackageReference>( ConflictItemType.Local );
              var merger = new PackagesConfigMerger( CurrentOperation.Merge, resolver );

              var result = merger.Merge( "TestFilePath", _packageV0, _packageEmpty, _packageV1 ).ToList();

              Assert.That( resolver.Called, Is.EqualTo( true ) );
              Assert.That( result, Is.Empty );
        }