예제 #1
0
        public CachingTestContext(TestDirectory testDirectory, MockServer mockServer, INuGetExe nuGetExe)
        {
            TestDirectory = testDirectory;
            MockServer    = mockServer;
            NuGetExe      = nuGetExe;

            PackageFramework = FrameworkConstants.CommonFrameworks.Net45;
            PackageIdentityA = new PackageIdentity("TestPackageA", new NuGetVersion("1.0.0"));
            PackageIdentityB = new PackageIdentity("TestPackageB", new NuGetVersion("1.0.0"));

            InitializeFiles();
            InitializeServer();

            MockServer.Start();
        }
예제 #2
0
        public static async Task <IEnumerable <CachingValidations> > ExecuteAsync(Type testType, Type commandType, INuGetExe nuGetExe, CachingType caching, ServerType server)
        {
            var test    = (ICachingTest)Activator.CreateInstance(testType);
            var command = (ICachingCommand)Activator.CreateInstance(commandType);

            return(await ExecuteAsync(
                       test,
                       command,
                       nuGetExe,
                       caching,
                       server));
        }
예제 #3
0
        public static async Task <IEnumerable <CachingValidations> > ExecuteAsync(ICachingTest test, ICachingCommand command, INuGetExe nuGetExe, CachingType caching, ServerType server)
        {
            using (var testFolder = TestDirectory.Create())
                using (var mockServer = new MockServer())
                {
                    var tc = new CachingTestContext(testFolder, mockServer, nuGetExe);

                    // Enable this flag to launch the debugger when the nuget.exe process starts. This also increases
                    // logging verbosity and command timeout.
                    //
                    // tc.Debug = true;

                    tc.NoCache        = caching.HasFlag(CachingType.NoCache);
                    tc.DirectDownload = caching.HasFlag(CachingType.DirectDownload);
                    tc.CurrentSource  = server == ServerType.V2 ? tc.V2Source : tc.V3Source;

                    tc.ClearHttpCache();
                    var validations = new List <CachingValidations>();
                    for (var i = 0; i < test.IterationCount; i++)
                    {
                        var args = await test.PrepareTestAsync(tc, command);

                        var result = tc.Execute(args);
                        validations.Add(test.Validate(tc, command, result));
                    }

                    return(validations);
                }
        }