github.com/greenpau/go-identity@v1.1.6/user_test.go (about) 1 // Copyright 2020 Paul Greenberg greenpau@outlook.com 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package identity 16 17 import ( 18 "github.com/greenpau/go-identity/pkg/requests" 19 "testing" 20 ) 21 22 func TestNewUser(t *testing.T) { 23 user := NewUser("jsmith") 24 if err := user.Valid(); err == nil { 25 t.Fatalf("user has no password, but was found to be valid") 26 } 27 28 if err := user.AddPassword("jsmith123", 0); err != nil { 29 t.Fatalf("error adding password: %s", err) 30 } 31 32 if err := user.Valid(); err != nil { 33 t.Fatalf("updated user, but was found to be invalid: %s", err) 34 } 35 36 roleName := "superadmin" 37 if err := user.AddRole(roleName); err != nil { 38 t.Fatalf("error adding role: %s", err) 39 } 40 41 if exists := user.HasRoles(); !exists { 42 t.Fatalf("added role, but the user has no roles") 43 } 44 45 if hasRole := user.HasRole(roleName); !hasRole { 46 t.Fatalf("added %s role, but the user has no %s role", roleName, roleName) 47 } 48 49 pkr := requests.NewRequest() 50 51 pkr.Key.Usage = "ssh" 52 pkr.Key.Payload = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDnnPNq40sWtv6WsG4cICs3Cb0C9EIeKbccOTVFk4/Ptl5oEMWHaH/e5OYAfhPsr66jC3SxCynlViXvc5+r7r9Tj1M7WGSIomZQr7c2gwyPRwT+/UBEtPi63LIAubb9rkdnZEmxU3hxdnMzeBovFLuEMZpmL5sce+sZNMMBybGP9UCRZaJhyYxy0jEJI9hlg4jRK30vkzPzsO+DNIqdAv3PNkhUqJABeMiXnxCCSQcb5S65zJPkGCRXKOlloFNt3ps9auWpJQgprrcxXFlSCvxu2UcdjegrmOMhohrxMl/VyMpbDWcyHolvZSko8uzM/G0UoR9UMrJN/AyXdzDrciqBG9EUT9NGPoA5sqWT6lt0cS7tG7tbAfV5XoN7QikwsWkDyaPfqV9EbLOkxBZCE9RdQTVtfX9MX7rBYz2MTItZ9WLIMmsPWe4RS31JhYhSiJqgGq0K8mHors5dfgMtiVaLUXG7hUpLRZ2qn29SkI0xIRiYUqLP1pV65EbJhy+1+2Vm2AgvdQrWrSofj6Dsw8IiyDtKx7ahgKnUbV3d4rtuo1hCikXu8rTlfUEXgR7kSdxaSb5uzqDLlKSe27szZxUvwsyGbTgQfLukyQZB9Kvxq6J70XMRG7UikKvyR0m/Eetp4B8RX5gvNqpd+SOl+dm+cGuqWT7UROygyf28cCqLzQ== jsmith@outlook.com" 53 pkr.Key.Comment = "jsmith@outlook.com" 54 55 if err := user.AddPublicKey(pkr); err != nil { 56 t.Fatalf("error adding ssh key: %s", err) 57 } 58 59 keyID := user.PublicKeys[0].ID 60 // t.Logf("key id: %s", keyID) 61 62 pkr = requests.NewRequest() 63 pkr.Key.ID = keyID 64 if err := user.DeletePublicKey(pkr); err != nil { 65 t.Fatalf("error deleting ssh key: %s", err) 66 } 67 68 if len(user.PublicKeys) > 0 { 69 t.Fatalf("expected 0 public keys") 70 } 71 72 }