github.com/symfony-cli/symfony-cli@v0.0.0-20240514161054-ece2df437dfa/commands/local_new_test.go (about) 1 /* 2 * Copyright (c) 2021-present Fabien Potencier <fabien@symfony.com> 3 * 4 * This file is part of Symfony CLI project 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Affero General Public License as 8 * published by the Free Software Foundation, either version 3 of the 9 * License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package commands 21 22 import ( 23 "os" 24 "strconv" 25 "testing" 26 27 "github.com/symfony-cli/symfony-cli/local/platformsh" 28 ) 29 30 func TestParseDockerComposeServices(t *testing.T) { 31 lastVersion := platformsh.ServiceLastVersion("postgresql") 32 33 if n, err := strconv.Atoi(lastVersion); err != nil { 34 t.Error("Could not generate test cases:", err) 35 } else { 36 os.Setenv("POSTGRES_NEXT_VERSION", strconv.Itoa(n+1)) 37 defer os.Unsetenv("POSTGRES_NEXT_VERSION") 38 } 39 40 for dir, expected := range map[string]CloudService{ 41 "testdata/docker/postgresql/noversion/": { 42 Name: "database", 43 Type: "postgresql", 44 Version: lastVersion, 45 }, 46 "testdata/docker/postgresql/10/": { 47 Name: "database", 48 Type: "postgresql", 49 Version: "10", 50 }, 51 "testdata/docker/postgresql/next/": { 52 Name: "database", 53 Type: "postgresql", 54 Version: lastVersion, 55 }, 56 } { 57 result := parseDockerComposeServices(dir) 58 if result[0].Version != expected.Version { 59 t.Errorf("parseDockerComposeServices(none/%q): got %v, expected %v", dir, result[0].Version, expected.Version) 60 } 61 } 62 }