/* * Copyright (C) 2021 Orange & contributors * * This program is free software; you can redistribute it and/or modify it under the terms * * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth * Floor, Boston, MA 02110-1301, USA. */ package main import ( "testing" "time" . "tbc.orange.com/gitlab-templates-tracking/cmd/tracking_service/internal" ) func TestBuildClient(t *testing.T) { configurations := "{\"clients\": [{\"url\": \"http://somewhere.com\",\"authentication\": {\"username\": \"username\",\"password\": \"p@ssw0rd!\"},\"timeout\": 5,\"indexPrefix\":\"tbc-\",\"esMajorVersion\":7,\"skipSslVerification\": true}]} " url := "http://somewhere.com" authentication := Authentication{ Username: "username", Password: "p@ssw0rd!", } timeout := time.Duration(5) clients, _ := readConfiguration([]byte(configurations)) client := clients.Clients[0] if client.Authentication.Username != authentication.Username || client.Authentication.Password != authentication.Password { t.Fatal("Authentication invalid") } else if client.Timeout != timeout { t.Fatalf("Invalid timeout. Expected %d got %d", timeout, client.Timeout) } else if client.Url != url { t.Fatal("Invalid url") } } func TestReadTemplateAndVersion(t *testing.T) { if err, arguments := readArguments("test", []string{"--skip_tracking", "template", "version"}); err != nil { t.Fatal(err) } else if arguments.template != "template" && arguments.version != "version" { t.Fatalf("Unexpected template/version got: %s/%s", arguments.template, arguments.version) } if err, arguments := readArguments("test", []string{"--port", "8080", "template", "version"}); err != nil { t.Fatal(err) } else if arguments.template != "template" && arguments.version != "version" { t.Fatalf("Unexpected template/version got: %s/%s", arguments.template, arguments.version) } if err, arguments := readArguments("test", []string{"--service", "template", "version"}); err != nil { t.Fatal(err) } else if arguments.template != "template" && arguments.version != "version" { t.Fatalf("Unexpected template/version got: %s/%s", arguments.template, arguments.version) } if err, arguments := readArguments("test", []string{"--service", "--port", "8080", "--skip_tracking", "template", "version"}); err != nil { t.Fatal(err) } else if arguments.template != "template" && arguments.version != "version" { t.Fatalf("Unexpected template/version got: %s/%s", arguments.template, arguments.version) } } func TestService(t *testing.T) { if err, arguments := readArguments("test", []string{"--service", "template", "version"}); err != nil { t.Fatal(err) } else if !arguments.service { t.Fatal("Error while loading service flag") } if err, arguments := readArguments("test", []string{"template", "version"}); err != nil { t.Fatal(err) } else if arguments.service { t.Fatal("Error while loading service flag") } } func TestSkipTracking(t *testing.T) { if err, arguments := readArguments("test", []string{"--skip_tracking", "template", "version"}); err != nil { t.Fatal(err) } else if !arguments.skipTracking { t.Fatal("Error while loading skip tracking flag") } if err, arguments := readArguments("test", []string{"template", "version"}); err != nil { t.Fatal(err) } else if arguments.skipTracking { t.Fatal("Error while loading skip tracking flag") } } func TestPort(t *testing.T) { if err, arguments := readArguments("test", []string{"--port", "8080", "template", "version"}); err != nil { t.Fatal(err) } else if arguments.port != 8080 { t.Fatal("Error while reading port") } if err, arguments := readArguments("test", []string{"template", "version"}); err != nil { t.Fatal(err) } else if arguments.port != PORT { t.Fatal("Default port should be set if none precised") } }