public ProvisionResponse Provision(ProvisionRequest request)
        {
            string sqlDashboard = configuration.GetAppSetting(SqlDashboardKey);

            Plan plan = GetPlan(request.PlanId);

            databaseBuilder.CreateDatabase(request.InstanceId, plan);

            return new ProvisionResponse {Url = sqlDashboard};
        }
        public ProvisionResponse Provision(ProvisionRequest request)
        {
            string sqlDashboard = configuration.GetAppSetting(SqlDashboardKey);

            Plan plan = GetPlan(request.PlanId);

            databaseBuilder.CreateDatabase(request.InstanceId, plan);

            return(new ProvisionResponse {
                Url = sqlDashboard
            });
        }
            public void ThrowsArgumentExceptionWhenPlanIdDoesNotExist()
            {
                var configuration = Substitute.For<IConfiguration>();
                var databaseBuilder = Substitute.For<IDatabaseBuilder>();
                configuration.GetAppSetting(Arg.Any<string>()).Returns("dashboard");
                var service = new MsSqlCloudFoundryService(configuration, databaseBuilder);
                var request = new ProvisionRequest { PlanId = Guid.NewGuid().ToString(), InstanceId = "instanceId"};

                var ex = Assert.Throws<ArgumentException>(() =>  service.Provision(request));

                Assert.Equal(string.Format("The plan id {0} does not exists", request.PlanId), ex.Message);
            }
            public void ReturnsCorrectUrlForDashboard()
            {
                var configuration = Substitute.For<IConfiguration>();
                var databaseBuilder = Substitute.For<IDatabaseBuilder>();
                configuration.GetAppSetting(Arg.Any<string>()).Returns("dashboard");
                var service = new MsSqlCloudFoundryService(configuration, databaseBuilder);
                var request = new ProvisionRequest { PlanId = MsSqlService.FreePlanId.ToString(), InstanceId = Guid.NewGuid().ToString() };

                ProvisionResponse response = service.Provision(request);

                Assert.Equal("dashboard", response.Url);
            }
            public void CallsDatabaseBuilderWithCorrectPlan()
            {
                var configuration = Substitute.For<IConfiguration>();
                var databaseBuilder = Substitute.For<IDatabaseBuilder>();
                configuration.GetAppSetting(Arg.Any<string>()).Returns("dashboard");
                var service = new MsSqlCloudFoundryService(configuration, databaseBuilder);
                var request = new ProvisionRequest { PlanId = MsSqlService.FreePlanId.ToString(), InstanceId = Guid.NewGuid().ToString() };

                service.Provision(request);

                databaseBuilder.Received().CreateDatabase(Arg.Is<string>(x => x == request.InstanceId), Arg.Is<Plan>(x => x.Id == request.PlanId));
            }