예제 #1
0
        public TestBase()
        {
            _containerBuilder = ContainerConfig.CreateContainerWithoutDependency();
            _containerBuilder.RegisterInstance(CreateTestLogger()).As <ILogger>();

            Phantom = TestServer.Create(app => OwinStartup.Configuration(app, BuildPhantom()));
        }
예제 #2
0
        protected virtual void Execute(Func <ISecurityRepository> securityRepository, Action <HttpClient> action)
        {
            if (action == null)
            {
                return;
            }

            using (var startup = new OwinStartup(
                       DatabaseName,
                       DefaultLocalEducationAgencyIds,
                       new List <string>
            {
                TestNamespace
            },
                       null,
                       securityRepository))
            {
                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.BaseAddress = new Uri(OdsBaseAddress);
                        client.Timeout     = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        action(client);
                    }
                }
            }
        }
예제 #3
0
        public void When_creating_a_student_should_not_leave_any_tracked_components()
        {
            using (var startup = new OwinStartup(DatabaseName, _localEducationAgencyIds))
            {
                var trackedComponents     = startup.GetTrackedComponents();
                int trackedComponentCount = trackedComponents.Count();
                trackedComponentCount.ShouldBe(0);

                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.Timeout = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        var createResponse = StudentHelper.CreateStudent(client, DataSeedHelper.RandomName, DataSeedHelper.RandomName);
                        createResponse.ResponseMessage.EnsureSuccessStatusCode();
                        createResponse.ResponseMessage.StatusCode.ShouldBe(HttpStatusCode.Created);
                    }

                    trackedComponents     = startup.GetTrackedComponents();
                    trackedComponentCount = trackedComponents.Count();

                    trackedComponentCount.ShouldBe(
                        0,
                        "Tracked Components: " + string.Join(", ", trackedComponents.Select(tc => tc.Key.ToString())));
                }
            }
        }
예제 #4
0
        protected virtual void Execute(List <int> localEducationAgencyIds, string customNamespace, Action <HttpClient> action)
        {
            using (var startup = new OwinStartup(
                       DatabaseName,
                       localEducationAgencyIds,
                       new List <string>
            {
                customNamespace
            }))
            {
                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.BaseAddress = new Uri(OdsBaseAddress);
                        client.Timeout     = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        action(client);
                    }
                }
            }
        }
예제 #5
0
        public void Should_Get_Dependencies()
        {
            string dependenciesResult;

            using (var startup = new OwinStartup(DatabaseName, DefaultLocalEducationAgencyIds))
            {
                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.Timeout = new TimeSpan(0, 0, 15, 0);

                        client.DefaultRequestHeaders.Authorization =
                            new AuthenticationHeaderValue("Bearer", Guid.NewGuid().ToString());

                        var dependencies = client.GetAsync(OwinUriHelper.BuildOdsUri("dependencies", null, null, true))
                                           .GetResultSafely();

                        dependencies.EnsureSuccessStatusCode();

                        dependenciesResult = dependencies.Content.ReadAsStringAsync().GetResultSafely();
                    }
                }
            }

            dependenciesResult.ShouldNotBeNullOrEmpty();
            Approvals.Verify(dependenciesResult);
        }
예제 #6
0
        public void Start(Uri baseUrl)
        {
            var startup = new OwinStartup();

            _server = startup.StartServer(baseUrl,
                                          bootstrapper => bootstrapper
                                          .UseSqlServer(_databaseConfigurator)
                                          .WithOrm());
        }
예제 #7
0
파일: Service.cs 프로젝트: madddmax/Galaxy
        public void Start()
        {
            _container = new WindsorContainer();
            _container.Install(FromAssembly.This());
            _container.Register(
                Component
                .For <HostConfig>()
                .Instance(HostConfig));

            _owinHost = WebApp.Start(_uriString, builder => OwinStartup.Configure(builder, _container));
        }
 public MarketDataService(
     IMarketDataProvider marketDataProvider,
     ScannerController scannerController,
     Level1Controller level1Controller,
     OwinStartup owinStartup,
     IAppConfig appConfig)
 {
     _appConfig          = appConfig;
     _level1Controller   = level1Controller;
     _marketDataProvider = marketDataProvider;
     _scannerController  = scannerController;
     _owinStartup        = owinStartup;
 }
        public async void Validate_Clear_Cache_One_Port()
        {
            var cachingProvider = Substitute.For <ICachingProvider>();

            _containerBuilder.RegisterInstance(cachingProvider);

            using (Phantom = TestServer.Create(app => OwinStartup.Configuration(app, _containerBuilder.Build())))
            {
                var response = await Phantom.HttpClient.PostAsync("v1/cache?port=1", new StringContent(string.Empty));

                response.StatusCode.Should().Be(HttpStatusCode.OK);
                response.Content.ReadAsStringAsync().Result.Should().BeEquivalentTo("\"Port 1 is configured to respond by the specified payload(0 means all ports, -1 means clear cache).\"");
            }
        }
        public async void Validate_Simulate_Throws_Exception()
        {
            var cachingProvider = Substitute.For <ICachingProvider>();

            cachingProvider
            .When(x => x.Save(Arg.Any <int>(), Arg.Any <string>(), Arg.Any <string>()))
            .Do(x => { throw new Exception("Phantom the menace"); });

            _containerBuilder.RegisterInstance(cachingProvider);

            using (Phantom = TestServer.Create(app => OwinStartup.Configuration(app, _containerBuilder.Build())))
            {
                var response = await Phantom.HttpClient.PostAsync("v1/simulate?type=register&port=9000", new StringContent(string.Empty));

                response.StatusCode.Should().Be(HttpStatusCode.InternalServerError);

                response.Content.ReadAsStringAsync().Result.Should().Contain("Phantom the menace");
            }
        }
        public async void Validate_Clear_Cache_Throws_Exception()
        {
            var cachingProvider = Substitute.For <ICachingProvider>();

            cachingProvider
            .When(x => x.ClearCache())
            .Do(x => { throw new FileNotFoundException("File not found!"); });

            _containerBuilder.RegisterInstance(cachingProvider);

            using (Phantom = TestServer.Create(app => OwinStartup.Configuration(app, _containerBuilder.Build())))
            {
                var response = await Phantom.HttpClient.PostAsync("v1/cache?port=-1", new StringContent(string.Empty));

                response.StatusCode.Should().Be(HttpStatusCode.InternalServerError);

                response.Content.ReadAsStringAsync().Result.Should().Contain("Could not start the server.");
            }
        }
예제 #12
0
        public void TestSetUp()
        {
            var kernel = new StandardKernel();

            TestServer.Create(app => OwinStartup.CoreConfiguration(app, () => kernel));
        }
예제 #13
0
 public TopicsControllerTests()
 {
     _topicsRepositoryMock = Substitute.For <ITopicsRepository>();
     _server = TestServer.Create(app => OwinStartup.CoreConfiguration(app, PrepareContainer));
 }
예제 #14
0
 public void Setup()
 {
     _OwinStartup = new OwinStartup(new TinyIoCContainer());
 }
예제 #15
0
 public NewsSourcesControllerTests()
 {
     _server = TestServer.Create(app => OwinStartup.CoreConfiguration(app, PrepareContainer));
 }
예제 #16
0
        //private readonly PackageManager PlatformPackageManager = new PackageManager(
        //    new AggregateRepository(new[]
        //    {
        //        PackageRepositoryFactory.Default.CreateRepository("http://54.187.86.186:10008/nuget/"),
        //        PackageRepositoryFactory.Default.CreateRepository("https://packages.nuget.org/api/v2")
        //    }),
        //    Environment.CurrentDirectory + "\\libTmp");


        public void Register(IAppBuilder app, HttpConfiguration config)
        {
            //HangfireBootstrapper.Instance.Start();
            //RecurringJob.AddOrUpdate(() => Console.WriteLine("Background job works!"),
            //    Cron.Minutely());

            var epaListUrl = ConfigurationManager.AppSettings["epaListUrl"];

            if (string.IsNullOrEmpty(epaListUrl))
            {
                throw new ConfigurationErrorsException("epaListUrl application setting should be specified as a valid url to EPA list.");
            }
            var epaConfigUrl = ConfigurationManager.AppSettings["epaConfigUrl"];

            if (string.IsNullOrEmpty(epaConfigUrl))
            {
                throw new ConfigurationErrorsException("epaConfigUrl application setting should be specified as a valid url to EPA config.");
            }
            var physicalSvcConfigUrl = ConfigurationManager.AppSettings["physicalSvcConfigUrl"];

            if (string.IsNullOrEmpty(physicalSvcConfigUrl))
            {
                throw new ConfigurationErrorsException("physicalSvcConfigUrl application setting should be specified as a valid url to Physical Svc config.");
            }

            var libsUrl = ConfigurationManager.AppSettings["epaLibsUrl"];

            if (string.IsNullOrEmpty(libsUrl))
            {
                throw new ConfigurationErrorsException("epaLibsUrl application setting should be specified as a valid url to Svc Libs List.");
            }

            using (WebClient wc = new WebClient())
            {
                var physicalSvcIdentity = ConfigurationManager.AppSettings["identity"];

                var json = wc.DownloadString(string.Format(physicalSvcConfigUrl, physicalSvcIdentity));

                var physicalCfgArray = JArray.Parse(json);
                var physicalCfg      = physicalCfgArray.ToDictionary(x => (string)x["Key"], x => (string)x["Value"]);

                //INIT MD MONGO
                var mongoPool =
                    IocContainerProvider.CurrentContainer.GetInstance <MongoDataProviderPool>();
                var mongoCs = $"{physicalCfg["mongocs"]}masterdata";
                mongoPool.AddProvider("masterdata", new MongoDataProvider(mongoCs));

                //INIT dictionaries CASSANDRA
                var casPool =
                    IocContainerProvider.CurrentContainer
                    .GetInstance <CassandraDataProviderPool>();
                casPool.AddProvider("dictionaries",
                                    new CassandraDataProvider(physicalCfg["DictionaryCassandraCs"], "dictionaries",
                                                              new Cassandra.Mapping.Mappings[] { new DictionaryMappings() }));

                //INIT Trans Cache CASSANDRA
                casPool.AddProvider("transactionCache",
                                    new CassandraDataProvider(physicalCfg["cassandraCs"], "TransactionCache",
                                                              new Cassandra.Mapping.Mappings[] { new MasterMappings() }));

                json = wc.DownloadString(string.Format(epaListUrl, physicalSvcIdentity));
                var epas = JArray.Parse(json);

                var epasList = epas.Select(x => (string)x["ServiceIdentity"]).ToList();
                this.logger.Debug($"Starting identities: {string.Join(", ", epasList)}");

                foreach (var epaIdentity in epasList)
                {
                    this.logger.Debug($"Starting EPA: {epaIdentity}");

                    var epaJson   = wc.DownloadString(string.Format(epaConfigUrl, epaIdentity));
                    var epaConfig = JArray.Parse(epaJson);

                    ConfigureEpa(epaConfig.ToDictionary(x => (string)x["Key"], x => (string)x["Value"]));

                    json = wc.DownloadString(string.Format(libsUrl, epaIdentity));
                    var libsList = JArray.Parse(json).ToDictionary(x => (string)x["LibraryName"], x => (string)x["Version"]);

#if !DEBUG
                    this.logger.Debug("Requesting libs");
                    var nugetRestoreOutput = CommandLineHelper.RunCommandLine("powershell",
                                                                              $".\\request_libs.ps1  -Identity \"{epaIdentity}\" -ServiceRootPath {Environment.CurrentDirectory}");
                    this.logger.Debug(nugetRestoreOutput);
#else
                    this.logger.Debug("Skip requesting libs");
#endif

                    var loadedAsses = OwinService.LoadExtensions();
                    OwinStartup.CallIOwinConfig(app, config, loadedAsses);

                    this.logger.Debug($"EPA {epaIdentity} started");
                }
            }
        }
예제 #17
0
 public OwinStartupFixture()
 {
     Instance = new OwinStartup(HangfireConfiguration, OAuthTokenValidatorConfiguration, TokenValidator);
 }
예제 #18
0
        public void When_getting_student_by_id_should_not_leave_any_tracked_components()
        {
            string authorizedStudentUri;

            var localEducationAgencyIds = new List <int>
            {
                Lea1Id, Lea2Id
            };

            using (var startup = new OwinStartup(DatabaseName, localEducationAgencyIds))
            {
                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.Timeout = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        //1st Student
                        var studentCreateResponse = StudentHelper.CreateStudentAndAssociateToSchool(
                            client,
                            DataSeedHelper.RandomName,
                            DataSeedHelper.RandomName,
                            School1Id);

                        studentCreateResponse.ResponseMessage.EnsureSuccessStatusCode();
                        authorizedStudentUri = studentCreateResponse.ResponseMessage.Headers.Location.AbsoluteUri;
                    }
                }
            }

            using (var startup = new OwinStartup(DatabaseName, localEducationAgencyIds))
            {
                var trackedComponents     = startup.GetTrackedComponents();
                int trackedComponentCount = trackedComponents.Count();
                trackedComponentCount.ShouldBe(0);

                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.Timeout = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        var authorizedResult = client.GetAsync(authorizedStudentUri)
                                               .Result;

                        authorizedResult.EnsureSuccessStatusCode();
                        authorizedResult.StatusCode.ShouldBe(HttpStatusCode.OK);
                    }

                    trackedComponents     = startup.GetTrackedComponents();
                    trackedComponentCount = trackedComponents.Count();

                    trackedComponentCount.ShouldBe(
                        0,
                        "Tracked Components: " + string.Join(", ", trackedComponents.Select(tc => tc.Key.ToString())));
                }
            }
        }
예제 #19
0
        public void When_getting_student_by_example_should_not_leave_any_tracked_components()
        {
            var authorizedFirstName = "John";
            var authorizedLastName  = string.Format("A{0}", DataSeedHelper.RandomName);

            var unauthorizedFirstName = "Other";
            var unauthorizedLastName  = string.Format("U{0}", DataSeedHelper.RandomName);

            var localEducationAgencyIds = new List <int>
            {
                Lea1Id, Lea2Id
            };

            using (var startup = new OwinStartup(DatabaseName, localEducationAgencyIds))
            {
                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.Timeout = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        //1st Student
                        var studentCreateResponse = StudentHelper.CreateStudentAndAssociateToSchool(
                            client,
                            authorizedLastName,
                            authorizedFirstName,
                            School1Id);

                        studentCreateResponse.ResponseMessage.EnsureSuccessStatusCode();

                        //2nd Student
                        studentCreateResponse = StudentHelper.CreateStudentAndAssociateToSchool(
                            client,
                            unauthorizedLastName,
                            unauthorizedFirstName,
                            School2Id);

                        studentCreateResponse.ResponseMessage.EnsureSuccessStatusCode();
                    }
                }
            }

            localEducationAgencyIds = new List <int>
            {
                Lea1Id
            };

            using (var startup = new OwinStartup(DatabaseName, localEducationAgencyIds))
            {
                var trackedComponents     = startup.GetTrackedComponents();
                int trackedComponentCount = trackedComponents.Count();
                trackedComponentCount.ShouldBe(0);

                using (var server = TestServer.Create(startup.Configuration))
                {
                    using (var client = new HttpClient(server.Handler))
                    {
                        client.Timeout = DefaultHttpClientTimeout;

                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                            "Bearer",
                            Guid.NewGuid()
                            .ToString());

                        var authorizedResult = client
                                               .GetAsync(OwinUriHelper.BuildOdsUri("students", queryString: $"LastSurname={authorizedLastName}"))
                                               .Result;

                        authorizedResult.EnsureSuccessStatusCode();
                        authorizedResult.StatusCode.ShouldBe(HttpStatusCode.OK);

                        var students = DefaultTestJsonSerializer.DeserializeObject <Student[]>(
                            authorizedResult.Content.ReadAsStringAsync()
                            .Result);

                        students.Length.ShouldBe(1);

                        students[0]
                        .FirstName.ShouldBe(authorizedFirstName);

                        var unauthorizedResult = client
                                                 .GetAsync(OwinUriHelper.BuildOdsUri("students", queryString: $"LastSurname={unauthorizedLastName}"))
                                                 .Result;

                        unauthorizedResult.StatusCode.ShouldBe(HttpStatusCode.OK);

                        students = DefaultTestJsonSerializer.DeserializeObject <Student[]>(
                            unauthorizedResult.Content.ReadAsStringAsync()
                            .Result);

                        students.Length.ShouldBe(0);
                    }

                    trackedComponents     = startup.GetTrackedComponents();
                    trackedComponentCount = trackedComponents.Count();

                    trackedComponentCount.ShouldBe(
                        0,
                        "Tracked Components: " + string.Join(", ", trackedComponents.Select(tc => tc.Key.ToString())));
                }
            }
        }