示例#1
0
        public void Success_GetOne(string packageName, string packageVersion)
        {
            string pak;
            var    configName = AppDomain.CurrentDomain.BaseDirectory.Split('\\').Last();

            if (string.IsNullOrEmpty(packageVersion))
            {
                pak = new NugetPackageRetriever(new[]
                {
                    Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                 NugetPackageLocation, configName)
                }).Retrieve(
                    _basePath,
                    packageName);
            }
            else
            {
                pak = new NugetPackageRetriever(new[]
                {
                    Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                 NugetPackageLocation, configName)
                }).Retrieve(
                    _basePath,
                    packageName,
                    new SemanticVersion(packageVersion));
            }

            Assert.True(!string.IsNullOrEmpty(pak) && pak == Path.Combine(_basePath, "Impromptu.Tests.Something.1.0.0"));
        }
示例#2
0
        public void Should_Successfully_Instantiate_Multithreaded()
        {
            var configName = AppDomain.CurrentDomain.BaseDirectory.Split('\\').Last();
            var fp         = new NugetPackageRetriever(new[] { Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                                            NugetPackageLocation, configName) });

            var ha    = new InstantiatorFactory <ISomething>(fp);
            var tasks = new List <Task>();

            var start = DateTime.Now;

            for (var i = 0; i < 1000000; i++)
            {
                tasks.Add(Task.Run(() =>
                {
                    var z = ha.Instantiate(new InstantiatorKey("Impromptu.Tests.Something", "1.0.0", "Impromptu.Tests.Something1"));
                    var x = z.DoSomething();
                }));
            }
            Task.WaitAll(tasks.ToArray());

            var elapsed = DateTime.Now.Subtract(start).TotalMilliseconds;

            _output.WriteLine($"Total elapsed {elapsed} ms.");
        }
示例#3
0
 public void Should_Pass_One()
 {
     var configName = AppDomain.CurrentDomain.BaseDirectory.Split('\\').Last();
     var fp         = new NugetPackageRetriever(new[] { Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                                     NugetPackageLocation, configName) });
     var ha = new InstantiatorFactory <ISomething>(fp);
     var z  =
         ha.Instantiate(new InstantiatorKey("Impromptu.Tests.Something", "1.0.0",
                                            "Impromptu.Tests.Something1"));
     var x  = z.DoSomething();
     var z1 =
         ha.Instantiate(new InstantiatorKey("Impromptu.Tests.Something", "1.0.0",
                                            "Impromptu.Tests.Something2"));
     var x1 = z1.DoSomething();
 }
示例#4
0
        public void Should_Fail_No_Ctor()
        {
            var configName = AppDomain.CurrentDomain.BaseDirectory.Split('\\').Last();
            var fp         = new NugetPackageRetriever(new[] { Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                                            NugetPackageLocation, configName) });

            var       ha = new InstantiatorFactory <ISomething>(fp);
            Exception ex = Assert.Throws <InstantiatorException>(() =>
            {
                var z =
                    ha.Instantiate(
                        new InstantiatorKey("Impromptu.Tests.Something", "1.0.0",
                                            "Impromptu.Tests.Something1"), 100);
            }
                                                                 );

            Assert.Equal(ex.GetType(), typeof(InstantiatorException));
        }
示例#5
0
        public void Should_Successfully_Instantiate()
        {
            var configName = AppDomain.CurrentDomain.BaseDirectory.Split('\\').Last();
            var fp         = new NugetPackageRetriever(new[] { Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                                            NugetPackageLocation, configName) });
            var ha = new InstantiatorFactory <ISomething>(fp, _basePath);
            {
                // let it jit compile
                var z = ha.Instantiate(new InstantiatorKey("Impromptu.Tests.Something", "1.0.0", "Impromptu.Tests.Something1"));
            }

            var start = DateTime.Now;

            for (var i = 0; i < 1000000; i++)
            {
                var z = ha.Instantiate(new InstantiatorKey("Impromptu.Tests.Something", "1.0.0", "Impromptu.Tests.Something1"));
                var x = z.DoSomething();
            }
            var elapsed = DateTime.Now.Subtract(start).TotalMilliseconds;

            _output.WriteLine($"Total elapsed {elapsed} ms.");
        }