diff --git a/src/emailnotification/service/email.go b/src/emailnotification/service/email.go
index 9572f56715db3b1ceb1906807be14a10acd1131f..cacd6c2a4b1874e91b5f84e1ec534944ab0911d7 100644
--- a/src/emailnotification/service/email.go
+++ b/src/emailnotification/service/email.go
@@ -14,7 +14,7 @@ import (
 
 func CreateEmail(emailContenct model.EmialContent, subject string) (string, string, string) {
 	if subject == "confirm" {
-		return emailContenct.Emailadress, fmt.Sprintf("Hallo Herr/Frau, %s\r\nHiermit bestaetigen wird deine Bestellung fuer das VFB Spiel in %s, am %s", emailContenct.Name, emailContenct.Location, emailContenct.Date), "Confirm Order"
+		return emailContenct.Emailadress, fmt.Sprintf("Hallo Herr/Frau, %s\r\nHiermit bestaetigen wird deine Bestellung fuer das VFB Spiel", emailContenct.Name), "Confirm Order"
 	}
 	if subject == "cancel" {
 		return emailContenct.Emailadress, fmt.Sprintf("Hallo Herr/Frau, %s\r\nHiermit bestaetigen wird die Stornierung deiner Bestellung fuer das VFB Spiel in %s, am %s", emailContenct.Name, emailContenct.Location, emailContenct.Date), "Confirm Cancelation"
diff --git a/src/highlanderticketing/.env b/src/highlanderticketing/.env
index 6dd7f7eefa0826bb6ead6e17dc405470c8bd5f85..9e9bcbe2adab66141afa4e02941e8ff91e830ad7 100644
--- a/src/highlanderticketing/.env
+++ b/src/highlanderticketing/.env
@@ -1 +1,3 @@
-NATS_URI=nats://nats:4222
\ No newline at end of file
+NATS_URI=nats://nats:4222
+CLIENT_ID=20993146996-uvmr7479e3qmhiu9gasko3lr163ll76j.apps.googleusercontent.com
+CLIENT_SECRET=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
\ No newline at end of file
diff --git a/src/highlanderticketing/api/match.go b/src/highlanderticketing/api/match.go
index 0bdf3c22a7ffbd7c75faba6e0f6823b7c0522aa8..cd4fea9151aacb9c822cd97a8224a6637a08a732 100644
--- a/src/highlanderticketing/api/match.go
+++ b/src/highlanderticketing/api/match.go
@@ -2,40 +2,44 @@ package api
 
 import (
 	"encoding/json"
-	"fmt"
 	"io"
 	"net/http"
 	"time"
 
+	log "github.com/sirupsen/logrus"
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
 )
 
 func GetMatchesOfApi(apiUrl string) ([]*model.Match, error) {
 	data, err := getData(apiUrl)
 	if err != nil {
+		log.Errorf("Failure loading data of match %v", err)
 		return []*model.Match{}, err
 	}
 	matches, err := formatJsonToMatch(data)
 	if err != nil {
+		log.Errorf("Failure formating match %v", err)
 		return []*model.Match{}, err
 	}
-	fmt.Println(matches)
+	log.Info("Got matches of API")
 	return matches, nil
 }
 
 func GetlatestMatchesOfApi(url string, updateChan chan<- *model.Match) error {
 	data, err := getData(url)
 	if err != nil {
+		log.Errorf("Failure loading data of match %v", err)
 		return err
 	}
 	matches, err := formatJsonToMatch(data)
 	if err != nil {
+		log.Errorf("Failure formating match %v", err)
 		return err
 	}
 	for _, match := range matches {
 		updateChan <- match
 	}
-
+	log.Info("added matches to chain")
 	return nil
 }
 
@@ -43,22 +47,25 @@ func getData(apiUrl string) ([]byte, error) {
 	request, err := http.NewRequest("GET", apiUrl, nil)
 
 	if err != nil {
+		log.Errorf("Failure creating request %v", err)
 		return []byte{}, err
 	}
 	client := &http.Client{}
-	response, error := client.Do(request)
+	response, err := client.Do(request)
 
-	if error != nil {
-		fmt.Println(error)
+	if err != nil {
+		log.Errorf("Failure making request %v", err)
+		return []byte{}, err
 	}
 
 	responseBody, err := io.ReadAll(response.Body)
 
 	if err != nil {
+		log.Errorf("Failure searalizing request %v", err)
 		return []byte{}, err
 	}
 	defer response.Body.Close()
-
+	log.Info("Got data of API")
 	return responseBody, nil
 }
 
@@ -67,6 +74,7 @@ func formatJsonToMatch(jsonArray []byte) ([]*model.Match, error) {
 	var results []map[string]interface{}
 
 	if err := json.Unmarshal(jsonArray, &results); err != nil {
+		log.Errorf("Failure unmarshaling data %v", err)
 		return nil, err
 	}
 
@@ -77,6 +85,7 @@ func formatJsonToMatch(jsonArray []byte) ([]*model.Match, error) {
 
 		matchDate, err := time.Parse("2006-01-02T15:04:05", result["matchDateTime"].(string))
 		if err != nil {
+			log.Errorf("Failure parsing date %v", err)
 			return nil, err
 		}
 		match.Date = matchDate
@@ -107,5 +116,6 @@ func formatJsonToMatch(jsonArray []byte) ([]*model.Match, error) {
 		}
 		matches = append(matches, &match)
 	}
+	log.Info("formated matches in json")
 	return matches, nil
 }
diff --git a/src/highlanderticketing/config/oauthconf.go b/src/highlanderticketing/config/oauthconf.go
index b1013e8758eb63bd5d482df1ee146d3c4bfec4e0..60cc802a1013437dcfdd3cc5fc396e184d35dccc 100644
--- a/src/highlanderticketing/config/oauthconf.go
+++ b/src/highlanderticketing/config/oauthconf.go
@@ -1,15 +1,21 @@
 package config
 
 import (
+	"log"
+	"os"
+
+	"github.com/joho/godotenv"
 	"golang.org/x/oauth2"
 	"golang.org/x/oauth2/google"
 )
 
-// in env varialben packen
 func GetOAuthConfigLogin() *oauth2.Config {
+	if err := godotenv.Load(".env"); err != nil {
+		log.Fatalf("Error loading .env file")
+	}
 	return &oauth2.Config{
-		ClientID:     "20993146996-uvmr7479e3qmhiu9gasko3lr163ll76j.apps.googleusercontent.com",
-		ClientSecret: "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",
+		ClientID:     os.Getenv("CLIENT_ID"),
+		ClientSecret: os.Getenv("CLIENT_SECRET"),
 		RedirectURL:  "http://localhost:8000/callback/login",
 		Scopes: []string{
 			"https://www.googleapis.com/auth/userinfo.email",
@@ -20,9 +26,12 @@ func GetOAuthConfigLogin() *oauth2.Config {
 }
 
 func GetOAuthConfigRegister() *oauth2.Config {
+	if err := godotenv.Load(".env"); err != nil {
+		log.Fatalf("Error loading .env file")
+	}
 	return &oauth2.Config{
-		ClientID:     "20993146996-uvmr7479e3qmhiu9gasko3lr163ll76j.apps.googleusercontent.com",
-		ClientSecret: "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",
+		ClientID:     os.Getenv("CLIENT_ID"),
+		ClientSecret: os.Getenv("CLIENT_SECRET"),
 		RedirectURL:  "http://localhost:8000/callback/register",
 		Scopes: []string{
 			"https://www.googleapis.com/auth/userinfo.email",
diff --git a/src/highlanderticketing/db/db.go b/src/highlanderticketing/db/db.go
index 3718292fe17b2dba3a2c169f522afbfddf9d5bd6..a2e6500b670b4ef7bc59be021edb2fec238be262 100644
--- a/src/highlanderticketing/db/db.go
+++ b/src/highlanderticketing/db/db.go
@@ -2,9 +2,10 @@ package db
 
 import (
 	"context"
-	"fmt"
 	"sync"
 
+	log "github.com/sirupsen/logrus"
+
 	"go.mongodb.org/mongo-driver/mongo"
 	"go.mongodb.org/mongo-driver/mongo/options"
 )
@@ -21,6 +22,7 @@ const (
 	DBUSER           = "db_user"
 	MATCHES          = "col_matches"
 	USERS            = "col_users"
+	USERS_TEST       = "col_users_test"
 	POOL_SIZE        = 10000 // Anzahl der Verbindungen im Pool
 )
 
@@ -31,24 +33,28 @@ func GetMongoClient() (*mongo.Client, error) {
 		clientOptions.SetMaxPoolSize(POOL_SIZE)
 		client, err := mongo.Connect(context.TODO(), clientOptions)
 		if err != nil {
-			fmt.Println("hier liegt der fehler")
+
 			clientInstanceError = err
+			log.Errorf("Failure instancing client %v", err)
 		}
 		err = client.Ping(context.TODO(), nil)
 		if err != nil {
 			clientInstanceError = err
+			log.Errorf("Failure pinging client %v", err)
 		}
 		clientInstance = client
 	})
-
+	log.Info("client returned")
 	return clientInstance, clientInstanceError
 }
 func CloseMongoClient() error {
 	if clientInstance != nil {
 		err := clientInstance.Disconnect(context.Background())
 		if err != nil {
+			log.Errorf("Failure disconnecting client %v", err)
 			return err
 		}
 	}
+	log.Info("client disconnected")
 	return nil
 }
diff --git a/src/highlanderticketing/handler/oauth.go b/src/highlanderticketing/handler/oauth.go
index 001792f70cec833bc0a84228dc8935f7e11f7653..6fbeb9141f4ac0f92160ddba7c1ba6d8e357f1bd 100644
--- a/src/highlanderticketing/handler/oauth.go
+++ b/src/highlanderticketing/handler/oauth.go
@@ -17,29 +17,33 @@ import (
 
 var secretKey = []byte("mysecretkey")
 
+// aufgerufen, wenn der benutzer sich ein loggt, ruft oauth conf auf, leitet zu authorisisuerngsseite um
 func HandleLogin(w http.ResponseWriter, r *http.Request) {
 	oauthConfig := config.GetOAuthConfigLogin()
 	url := oauthConfig.AuthCodeURL("state", oauth2.AccessTypeOffline)
 	http.Redirect(w, r, url, http.StatusTemporaryRedirect)
 }
 
+// aufgerufen, wenn der benutzer sich registriert, ruft oauth conf auf, leitet zu authorisisuerngsseite um
 func HandleRegister(w http.ResponseWriter, r *http.Request) {
 	oauthConfig := config.GetOAuthConfigRegister()
 	url := oauthConfig.AuthCodeURL("state", oauth2.AccessTypeOffline)
 	http.Redirect(w, r, url, http.StatusTemporaryRedirect)
 }
+
+// aufgerufen, wenn autorisierungscode von google kommt, tauscht code gegen access token ein, und registriert den benutzer
 func HandleCallbackRegister(w http.ResponseWriter, r *http.Request) {
 	oauthConfig := config.GetOAuthConfigRegister()
 	code := r.URL.Query().Get("code")
 	token, err := oauthConfig.Exchange(context.Background(), code)
 	if err != nil {
-		log.Println("Fehler beim Austausch des Autorisierungscodes:", err)
+		log.Errorf("Failure exchanging authorisingcode: %v", err)
 		http.Error(w, "Fehler beim Authentifizieren", http.StatusInternalServerError)
 		return
 	}
 	err = service.Register(token.AccessToken)
 	if err != nil {
-		fmt.Println(err)
+		log.Errorf("Failure registrating: %v", err)
 		io.WriteString(w, `user besteht bereits`)
 	} else {
 		sendJson(w, "user erfolgreich angelegt")
@@ -47,13 +51,14 @@ func HandleCallbackRegister(w http.ResponseWriter, r *http.Request) {
 
 }
 
+// aufgerufen, wenn autorisierungscode von google kommt, tauscht code gegen Zugriffstoken ein, generiert jwt token
 func HandleCallbackLogin(w http.ResponseWriter, r *http.Request) {
 
 	oauthConfig := config.GetOAuthConfigLogin()
 	code := r.URL.Query().Get("code")
 	token, err := oauthConfig.Exchange(context.Background(), code)
 	if err != nil {
-		log.Println("Fehler beim Austausch des Autorisierungscodes:", err)
+		log.Errorf("Failure exchanging authorisingcode: %v", err)
 		http.Error(w, "Fehler beim Authentifizieren", http.StatusInternalServerError)
 		return
 	}
@@ -73,7 +78,7 @@ func HandleCallbackLogin(w http.ResponseWriter, r *http.Request) {
 	tokenJwt := jwt.New(jwt.SigningMethodHS256)
 	claims := tokenJwt.Claims.(jwt.MapClaims)
 	claims["username"] = userfound.Email
-	claims["exp"] = time.Now().Add(time.Hour * 24).Unix()
+	claims["exp"] = time.Now().Add(time.Minute * 5).Unix()
 
 	tokenString, err := tokenJwt.SignedString(secretKey)
 	if err != nil {
@@ -81,13 +86,15 @@ func HandleCallbackLogin(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 
-	fmt.Fprintf(w, "Login erfolgreich")
+	log.Info("Login erfolgreich")
 	sendJson(w, tokenString)
 }
 
+// überprüft den jwt token
 func CheckAccessToken(w http.ResponseWriter, r *http.Request, needAdmin bool) (error, string) {
 	tokenString, err := getBearerToken(r)
 	if err != nil {
+		log.Errorf("no bearer token handed over: %v", err)
 		return err, ""
 	}
 
@@ -113,12 +120,14 @@ func CheckAccessToken(w http.ResponseWriter, r *http.Request, needAdmin bool) (e
 			return err, ""
 		}
 	}
+	log.Info("token checked succesfully")
 	return nil, username
 }
 
 func checkAdmin(userEmail string) error {
 	user, err := service.GetUserByEmail(userEmail)
 	if err != nil {
+		log.Errorf("failure getting user by email: %v", err)
 		return err
 	}
 	if user.IsAdmin {
diff --git a/src/highlanderticketing/handler/order.go b/src/highlanderticketing/handler/order.go
index 7d9106223cecdeaa22191ee05a6edc6277d67b54..495df57c2530bc707e8027b90ff335712625914a 100644
--- a/src/highlanderticketing/handler/order.go
+++ b/src/highlanderticketing/handler/order.go
@@ -2,7 +2,6 @@ package handler
 
 import (
 	"encoding/json"
-	"fmt"
 	"net/http"
 
 	log "github.com/sirupsen/logrus"
@@ -19,15 +18,16 @@ func AddMatchOrder(w http.ResponseWriter, r *http.Request) {
 	}
 	id, err := getID(r)
 	if err != nil {
+		log.Errorf("Eror gettin id in request: %v", err)
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
 	order, err := getOrder(r)
 	if err != nil {
+		log.Errorf("Eror gettin order in request: %v", err)
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	fmt.Println(userOfOrder, "userOfOrder")
 	internalUser, err := service.GetUserByEmail(userOfOrder)
 	if err != nil {
 		log.Errorf("Failure loading internal user Info %v", err)
@@ -52,18 +52,19 @@ func CancelOrder(w http.ResponseWriter, r *http.Request) {
 	}
 	id, err := getID(r)
 	if err != nil {
+		log.Errorf("Eror gettin id in request: %v", err)
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
 	orderId, err := getOrderID(r)
 	if err != nil {
+		log.Errorf("Eror gettin order in request: %v", err)
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	fmt.Println(orderId, "orderid")
 	order, err := service.GetOrderById(orderId)
-	fmt.Println("order ", order)
 	if err != nil {
+		log.Errorf("Eror order internal: %v", err)
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
diff --git a/src/highlanderticketing/handler/travel.go b/src/highlanderticketing/handler/travel.go
deleted file mode 100644
index abeebd162ee44d9c076ced7c51310c2501f7b7af..0000000000000000000000000000000000000000
--- a/src/highlanderticketing/handler/travel.go
+++ /dev/null
@@ -1 +0,0 @@
-package handler
diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go
index 02f9fd253c8f234d66f51716362090b78327d0bf..bae9774b3b101e4edd7aac15c3b0a7ec733b125d 100644
--- a/src/highlanderticketing/main.go
+++ b/src/highlanderticketing/main.go
@@ -20,11 +20,10 @@ import (
 func main() {
 	updateChan := make(chan *model.Match)
 	service.DeleteAllMatches()
-	/*service.DeleteAllUsers()
-	  var userArray []model.User
-	  userArray, _ = service.GetAllUsers()
-	  fmt.Println(userArray)
-	*/
+	service.DeleteAllUsers()
+	/* var userArray []model.User
+	userArray, _ = service.GetAllUsers()
+	fmt.Println(userArray)*/
 
 	go func() {
 		for {
diff --git a/src/highlanderticketing/service/match.go b/src/highlanderticketing/service/match.go
index b65e0da3b03d77e7898ba61b8a7082873d4c4b4c..8b1c2c9fbe2ae4658c5a8618ffc72586e739f92a 100644
--- a/src/highlanderticketing/service/match.go
+++ b/src/highlanderticketing/service/match.go
@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 
+	log "github.com/sirupsen/logrus"
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db"
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
 	"go.mongodb.org/mongo-driver/bson"
@@ -16,14 +17,17 @@ func CreateMatch(match *model.Match) error {
 	match.Orders = []model.Order{}
 	client, err := db.GetMongoClient()
 	if err != nil {
+		log.Errorf("Eror gettin db client: %v", err)
 		return err
 	}
 	collection := client.Database(db.DB).Collection(db.MATCHES)
 
 	_, err = collection.InsertOne(context.TODO(), match)
 	if err != nil {
+		log.Errorf("Erorr inserting match: %v", err)
 		return nil
 	}
+	log.Info("match inserted: %v", match)
 	return nil
 }
 
@@ -35,22 +39,23 @@ func InserExternalMatch(match *model.Match) error {
 
 	client, err := db.GetMongoClient()
 	if err != nil {
+		log.Errorf("Eror gettin db client: %v", err)
 		return err
 	}
 
 	collection := client.Database(db.DB).Collection(db.MATCHES)
 	err = collection.FindOne(context.TODO(), filter).Decode(existingMatch)
 	if err == nil {
-		fmt.Println("existier bereits")
+		log.Info("match already exists")
 		return fmt.Errorf("Match mit ExternalID %d exists already", match.ExternalID)
 	} else if err != mongo.ErrNoDocuments {
 		return err
 	}
-	fmt.Println(match, "match das rein kommt")
 	_, err = collection.InsertOne(context.TODO(), match)
 	if err != nil {
 		return nil
 	}
+	log.Info("match inserted: %v", match)
 	return nil
 }
 
@@ -73,12 +78,14 @@ func UpdateMatch(matchID primitive.ObjectID, match *model.Match) (*model.Match,
 
 	client, err := db.GetMongoClient()
 	if err != nil {
+		log.Errorf("Eror gettin db client: %v", err)
 		return nil, err
 	}
 	collection := client.Database(db.DB).Collection(db.MATCHES)
 
 	updateResult, err := collection.UpdateOne(context.TODO(), filter, updater)
 	if err != nil {
+		log.Errorf("Erorr getting collection of db: %v", err)
 		return nil, err
 	}
 
@@ -88,9 +95,10 @@ func UpdateMatch(matchID primitive.ObjectID, match *model.Match) (*model.Match,
 
 	err = collection.FindOne(context.TODO(), filter).Decode(&result)
 	if err != nil {
+		log.Errorf("Erorr finding match in db: %v", err)
 		return nil, err
 	}
-
+	log.Info("match updated: %v", match)
 	return &result, nil
 }
 
@@ -100,7 +108,7 @@ func UpdateTickets(matchID primitive.ObjectID, match *model.Match) (*model.Match
 
 	existingmatch, err := GetMatchByID(matchID)
 	if err != nil {
-		fmt.Println(existingmatch, "existingmatch")
+		log.Errorf("Erorr getting match by id: %v", err)
 		return &result, err
 	}
 
@@ -115,12 +123,14 @@ func UpdateTickets(matchID primitive.ObjectID, match *model.Match) (*model.Match
 
 	client, err := db.GetMongoClient()
 	if err != nil {
+		log.Errorf("Eror gettin db client: %v", err)
 		return nil, err
 	}
 	collection := client.Database(db.DB).Collection(db.MATCHES)
 
 	updateResult, err := collection.UpdateOne(context.TODO(), filter, updater)
 	if err != nil {
+		log.Errorf("Erorr getting collection of db: %v", err)
 		return nil, err
 	}
 
@@ -132,7 +142,7 @@ func UpdateTickets(matchID primitive.ObjectID, match *model.Match) (*model.Match
 	if err != nil {
 		return nil, err
 	}
-
+	log.Info("tickets updated: %v", match)
 	return &result, nil
 }
 
diff --git a/src/highlanderticketing/service/nats.go b/src/highlanderticketing/service/nats.go
index 7c0576c7586d9d63c34fbf5d35679df9b47fdc8e..8ad15824451e471f8937c00f21fc8f48ad11d4a3 100644
--- a/src/highlanderticketing/service/nats.go
+++ b/src/highlanderticketing/service/nats.go
@@ -49,6 +49,9 @@ func (s NatsServer) ConfirmOrder(e *model.EmialContent) (error, bool) {
 	if err := json.Unmarshal(response.Data, &res); err != nil {
 		return fmt.Errorf(err.Error()), false
 	}
+	if res.Send != true {
+		return fmt.Errorf("emain not succesfuly send"), false
+	}
 	fmt.Println("hier die nats response", *res)
 	return nil, true
 }
@@ -69,7 +72,9 @@ func (s NatsServer) ConfirmCancel(e *model.EmialContent) (error, bool) {
 	if err := json.Unmarshal(response.Data, &res); err != nil {
 		return fmt.Errorf(err.Error()), false
 	}
-
+	if res.Send != true {
+		return fmt.Errorf("emain not succesfuly send"), false
+	}
 	fmt.Println("hier die nats response", *res)
 	return nil, true
 }
diff --git a/src/highlanderticketing/service/user.go b/src/highlanderticketing/service/user.go
index 53c047faf49e2832465f9a03f566cb92c01522bd..c9c703c7e5d9411b5d621439b9dc073935dad4ea 100644
--- a/src/highlanderticketing/service/user.go
+++ b/src/highlanderticketing/service/user.go
@@ -50,18 +50,15 @@ func CreateUser(user *model.User) error {
 	result := collection.FindOneAndUpdate(context.TODO(), filter, update, options)
 
 	if result.Err() == mongo.ErrNoDocuments {
-		fmt.Println(3)
 		return nil // dokument wurd erstellt
 	} else if result.Err() != nil {
-		fmt.Println(2)
 		return result.Err() // fehler beim process an sich
 	} else {
-		fmt.Println(1)
 		return fmt.Errorf("Der Benutzer existiert bereits")
 	}
 }
 
-func UpdateUser(userID primitive.ObjectID, user *model.User) (*model.User, error) { //darf nur ein admin machen
+func UpdateUser(userID primitive.ObjectID, user *model.User) (*model.User, error) {
 	result := model.User{}
 	existingUser, err := GetUserByID(userID)
 	if existingUser == nil || err != nil {
diff --git a/src/highlanderticketing/service/user_test.go b/src/highlanderticketing/service/user_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..d3c4404abb4239a6f09e347f522a68317d0be6db
--- /dev/null
+++ b/src/highlanderticketing/service/user_test.go
@@ -0,0 +1,39 @@
+package service_test
+
+import (
+	"reflect"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/service"
+)
+
+func TestCreateUserIntegration(t *testing.T) {
+	user := &model.User{
+		Email:      "test@example.com",
+		Name:       "John",
+		FamilyName: "Doe",
+		IsAdmin:    false,
+	}
+
+	// Testfall 1: der benutzer wird angelegt
+	err2 := service.CreateUser(user)
+
+	assert.Nil(t, err2)
+	assert.False(t, user.IsAdmin)
+
+	if !reflect.DeepEqual(t, user) {
+		t.Errorf("Expected %+v, but got %+v", t, err2)
+	}
+
+	// Testfall 2: es gibt bereits den Benutzer
+	err3 := service.CreateUser(user)
+
+	assert.Error(t, err3)
+	assert.Equal(t, "Der Benutzer existiert bereits", err3.Error())
+
+	if !reflect.DeepEqual(err2, user) {
+		t.Errorf("Expected %+v, but got %+v", t, err2)
+	}
+}