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  }