void CreateResolver_Throws(VersionMatchingStrategies in1, VersionMatchingStrategies in2, String paramName, String message)
        {
            var            creator = Factory.Instance.NugetResolver();
            INugetResolver obj     = default;

            Test.If.Action.ThrowsException(() => creator.Create(out obj, in1, in2), out ArgumentException ex);

            Test.If.Object.IsNull(obj);
            Test.If.Value.IsEqual(ex.ParamName, paramName);
            Test.If.String.Contains(ex.Message, message);
        }
        void TryCreateResolver_DoesNotThrow(VersionMatchingStrategies in1, VersionMatchingStrategies in2)
        {
            var            creator = Factory.Instance.NugetResolver();
            Boolean        result  = default;
            INugetResolver obj     = default;

            Test.IfNot.Action.ThrowsException(() => result = creator.TryCreate(out obj, in1, in2), out Exception _);

            Test.If.Value.IsFalse(result);
            Test.If.Object.IsNull(obj);
        }
        void CreateResolver(VersionMatchingStrategies in1, VersionMatchingStrategies in2)
        {
            var            creator = Factory.Instance.NugetResolver();
            INugetResolver obj     = default;

            Test.IfNot.Action.ThrowsException(() => creator.Create(out obj, in1, in2), out Exception _);

            Test.IfNot.Object.IsNull(obj);
            Test.If.Value.IsEqual(obj.AssemblyMatchingStrategy, in1);
            Test.If.Value.IsEqual(obj.PackageMatchingStrategy, in2);
            Test.If.Enumerable.Matches(obj.NugetCaches.Select(_ => _.FullName), NugetResolver.GetCaches().Select(_ => _.FullName));
        }
        void TryCreateResolverWithCaches(VersionMatchingStrategies in1, VersionMatchingStrategies in2)
        {
            var            creator = Factory.Instance.NugetResolver();
            Boolean        result  = default;
            INugetResolver obj     = default;

            Test.IfNot.Action.ThrowsException(() => result = creator.TryCreate(out obj, in1, in2, new DirectoryInfo[] { Statics.FakeNugetCache }), out Exception _);

            Test.If.Value.IsTrue(result);
            Test.IfNot.Object.IsNull(obj);
            Test.If.Value.IsEqual(obj.AssemblyMatchingStrategy, in1);
            Test.If.Value.IsEqual(obj.PackageMatchingStrategy, in2);
            Test.If.Enumerable.Matches(obj.NugetCaches.Select(_ => _.FullName), new String[] { Statics.FakeNugetCache.FullName });
        }
        void TryCreateResolverWithExOut(VersionMatchingStrategies in1, VersionMatchingStrategies in2)
        {
            var            creator = Factory.Instance.NugetResolver();
            Boolean        result  = default;
            INugetResolver obj     = default;
            Exception      ex      = default;

            Test.IfNot.Action.ThrowsException(() => result = creator.TryCreate(out obj, in1, in2, out ex), out Exception _);

            Test.If.Value.IsTrue(result);
            Test.If.Object.IsNull(ex);
            Test.IfNot.Object.IsNull(obj);
            Test.If.Value.IsEqual(obj.AssemblyMatchingStrategy, in1);
            Test.If.Value.IsEqual(obj.PackageMatchingStrategy, in2);
            Test.If.Enumerable.Matches(obj.NugetCaches.Select(_ => _.FullName), NugetResolver.GetCaches().Select(_ => _.FullName));
        }
        void TryCreateResolverWithExOutWithCaches_DoesNotThrow(VersionMatchingStrategies in1, VersionMatchingStrategies in2, String paramName, String message)
        {
            var            creator = Factory.Instance.NugetResolver();
            Boolean        result  = default;
            INugetResolver obj     = default;
            Exception      ex      = default;

            Test.IfNot.Action.ThrowsException(() => result = creator.TryCreate(out obj, in1, in2, new DirectoryInfo[] { Statics.FakeNugetCache }, out ex), out Exception _);

            Test.If.Value.IsFalse(result);
            Test.IfNot.Object.IsNull(ex);
            Test.If.Object.IsOfExactType <ArgumentException>(ex);
            Test.If.Value.IsEqual(((ArgumentException)ex).ParamName, paramName);
            Test.If.String.Contains(ex.Message, message);
            Test.If.Object.IsNull(obj);
        }
 public override Boolean TryCreate(out INugetResolver obj, VersionMatchingStrategies assemblyMatchingStrategy, VersionMatchingStrategies packageMatchingStrategy, IEnumerable <DirectoryInfo> caches, out Exception ex)
 => _resolverWithCacheCreator.TryCreate(out obj, assemblyMatchingStrategy, packageMatchingStrategy, caches, out ex);
 public override void Create(out INugetResolver obj, VersionMatchingStrategies assemblyMatchingStrategy, VersionMatchingStrategies packageMatchingStrategy, IEnumerable <DirectoryInfo> caches)
 => _resolverWithCacheCreator.Create(out obj, assemblyMatchingStrategy, packageMatchingStrategy, caches);
 public override Boolean TryCreate(out INugetResolver obj, VersionMatchingStrategies assemblyMatchingStrategy, VersionMatchingStrategies packageMatchingStrategy, out Exception ex)
 => _resolverCreator.TryCreate(out obj, assemblyMatchingStrategy, packageMatchingStrategy, out ex);
 public override void Create(out INugetResolver obj, VersionMatchingStrategies assemblyMatchingStrategy, VersionMatchingStrategies packageMatchingStrategy)
 => _resolverCreator.Create(out obj, assemblyMatchingStrategy, packageMatchingStrategy);