func mapToAppParams(basePath string, yamlMap generic.Map) (models.AppParams, error) { err := checkForNulls(yamlMap) if err != nil { return models.AppParams{}, err } var appParams models.AppParams var errs []error appParams.BuildpackURL = stringValOrDefault(yamlMap, "buildpack", &errs) appParams.DiskQuota = bytesVal(yamlMap, "disk_quota", &errs) domainAry := *sliceOrEmptyVal(yamlMap, "domains", &errs) if domain := stringVal(yamlMap, "domain", &errs); domain != nil { domainAry = append(domainAry, *domain) } appParams.Domains = removeDuplicatedValue(domainAry) hostsArr := *sliceOrEmptyVal(yamlMap, "hosts", &errs) if host := stringVal(yamlMap, "host", &errs); host != nil { hostsArr = append(hostsArr, *host) } appParams.Hosts = removeDuplicatedValue(hostsArr) appParams.Name = stringVal(yamlMap, "name", &errs) appParams.Path = stringVal(yamlMap, "path", &errs) appParams.StackName = stringVal(yamlMap, "stack", &errs) appParams.Command = stringValOrDefault(yamlMap, "command", &errs) appParams.Memory = bytesVal(yamlMap, "memory", &errs) appParams.InstanceCount = intVal(yamlMap, "instances", &errs) appParams.HealthCheckTimeout = intVal(yamlMap, "timeout", &errs) appParams.NoRoute = boolVal(yamlMap, "no-route", &errs) appParams.NoHostname = boolVal(yamlMap, "no-hostname", &errs) appParams.UseRandomRoute = boolVal(yamlMap, "random-route", &errs) appParams.ServicesToBind = sliceOrEmptyVal(yamlMap, "services", &errs) appParams.EnvironmentVars = envVarOrEmptyMap(yamlMap, &errs) appParams.HealthCheckType = stringVal(yamlMap, "health-check-type", &errs) appParams.AppPorts = intSliceVal(yamlMap, "app-ports", &errs) appParams.Routes = parseRoutes(yamlMap, &errs) if appParams.Path != nil { path := *appParams.Path if filepath.IsAbs(path) { path = filepath.Clean(path) } else { path = filepath.Join(basePath, path) } appParams.Path = &path } if len(errs) > 0 { message := "" for _, err := range errs { message = message + fmt.Sprintf("%s\n", err.Error()) } return models.AppParams{}, errors.New(message) } return appParams, nil }
entity := resources.NewApplicationEntityFromAppParams(appParams) Expect(*entity.Buildpack).To(Equal(buildpackURL)) Expect(*entity.Name).To(Equal(name)) Expect(*entity.SpaceGUID).To(Equal(spaceGUID)) Expect(*entity.Instances).To(Equal(instanceCount)) Expect(*entity.Memory).To(Equal(memory)) Expect(*entity.DiskQuota).To(Equal(diskQuota)) Expect(*entity.StackGUID).To(Equal(stackGUID)) Expect(*entity.Command).To(Equal(command)) Expect(*entity.HealthCheckType).To(Equal(healthCheckType)) Expect(*entity.HealthCheckTimeout).To(Equal(healthCheckTimeout)) Expect(*entity.DockerImage).To(Equal(dockerImage)) Expect(*entity.Diego).To(Equal(diego)) Expect(*entity.EnableSSH).To(Equal(enableSSH)) Expect(*entity.PackageUpdatedAt).To(Equal(packageUpdatedAt)) Expect(*entity.AppPorts).To(Equal(appPorts)) }) It("upcases the state", func() { entity := resources.NewApplicationEntityFromAppParams(appParams) Expect(*entity.State).To(Equal("STATE")) }) It("does not include environment vars when they do not exist in the params", func() { appParams.EnvironmentVars = nil entity := resources.NewApplicationEntityFromAppParams(appParams) Expect(entity.EnvironmentJSON).To(BeNil()) }) }) })