]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/sync_info_test.go
First working version
[safcm/safcm.git] / cmd / safcm / sync_info_test.go
diff --git a/cmd/safcm/sync_info_test.go b/cmd/safcm/sync_info_test.go
new file mode 100644 (file)
index 0000000..b883bb7
--- /dev/null
@@ -0,0 +1,77 @@
+// Copyright (C) 2021  Simon Ruderich
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package main
+
+import (
+       "reflect"
+       "testing"
+
+       "github.com/google/go-cmp/cmp"
+
+       "ruderich.org/simon/safcm"
+)
+
+func TestHostInfoRespToGroups(t *testing.T) {
+       tests := []struct {
+               name string
+               resp safcm.MsgInfoResp
+               exp  []string
+       }{
+
+               {
+                       "no output",
+                       safcm.MsgInfoResp{
+                               Goos:   "linux",
+                               Goarch: "amd64",
+                               Output: nil,
+                       },
+                       []string{
+                               "detected_linux",
+                               "detected_amd64",
+                       },
+               },
+
+               {
+                       "output",
+                       safcm.MsgInfoResp{
+                               Goos:   "linux",
+                               Goarch: "amd64",
+                               Output: []string{
+                                       "simple",
+                                       "with spaces",
+                                       "with UPPERcase",
+                                       "with UTF-8: Hello, 世界",
+                               },
+                       },
+                       []string{
+                               "detected_linux",
+                               "detected_amd64",
+                               "detected_simple",
+                               "detected_with_spaces",
+                               "detected_with_uppercase",
+                               "detected_with_utf-8_hello_",
+                       },
+               },
+       }
+
+       for _, tc := range tests {
+               res := hostInfoRespToGroups(tc.resp)
+               if !reflect.DeepEqual(tc.exp, res) {
+                       t.Errorf("%s: res: %s", tc.name,
+                               cmp.Diff(tc.exp, res))
+               }
+       }
+}