diff --git a/broker/src/asapo_broker/server/get_meta_test.go b/broker/src/asapo_broker/server/get_meta_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..4e305ea3e7077135002a2403603c078678a4bd76
--- /dev/null
+++ b/broker/src/asapo_broker/server/get_meta_test.go
@@ -0,0 +1,41 @@
+package server
+
+import (
+	"asapo_broker/database"
+	"asapo_common/logger"
+	"github.com/stretchr/testify/mock"
+	"github.com/stretchr/testify/suite"
+	"net/http"
+	"testing"
+)
+
+type GetMetaTestSuite struct {
+	suite.Suite
+	mock_db *database.MockedDatabase
+}
+
+func (suite *GetMetaTestSuite) SetupTest() {
+	statistics.Reset()
+	suite.mock_db = new(database.MockedDatabase)
+	db = suite.mock_db
+	prepareTestAuth()
+	logger.SetMockLog()
+}
+
+func (suite *GetMetaTestSuite) TearDownTest() {
+	assertExpectations(suite.T(), suite.mock_db)
+	logger.UnsetMockLog()
+	db = nil
+}
+
+func TestGetMetaTestSuite(t *testing.T) {
+	suite.Run(t, new(GetMetaTestSuite))
+}
+
+func (suite *GetMetaTestSuite) TestGetMetaOK() {
+	suite.mock_db.On("ProcessRequest", database.Request{DbName: expectedDBName, DbCollectionName: expectedSubstream, Op: "meta", ExtraParam: "1"}).Return([]byte(""), nil)
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing request meta")))
+	w := doRequest("/database/" + expectedBeamtimeId + "/" + expectedStream + "/" + expectedSubstream + "/0/meta"  + "/1" + correctTokenSuffix,"GET")
+	suite.Equal(http.StatusOK, w.Code, "meta OK")
+}
+
diff --git a/broker/src/asapo_broker/server/post_op_image_test.go b/broker/src/asapo_broker/server/post_op_image_test.go
index 19d70f940d94a86d8ac9cec30848accacadf12e9..94fdf49f6057390156cd8656feb93ce5ab4ea6f8 100644
--- a/broker/src/asapo_broker/server/post_op_image_test.go
+++ b/broker/src/asapo_broker/server/post_op_image_test.go
@@ -39,3 +39,16 @@ func (suite *ImageOpTestSuite) TestAckImageOpOK() {
 	w := doRequest("/database/" + expectedBeamtimeId + "/" + expectedStream + "/" + expectedSubstream + "/" + expectedGroupID + "/1" + correctTokenSuffix,"POST",query_str)
 	suite.Equal(http.StatusOK, w.Code, "ackimage OK")
 }
+
+
+func (suite *ImageOpTestSuite) TestAckImageOpErrorWrongOp() {
+	query_str := "\"Id\":1,\"Op\":\"ackimage\"}"
+	w := doRequest("/database/" + expectedBeamtimeId + "/" + expectedStream + "/" + expectedSubstream + "/" + expectedGroupID + "/1" + correctTokenSuffix,"POST",query_str)
+	suite.Equal(http.StatusBadRequest, w.Code, "ackimage wrong")
+}
+
+func (suite *ImageOpTestSuite) TestAckImageOpErrorWrongID() {
+	query_str := "{\"Id\":1,\"Op\":\"ackimage\"}"
+	w := doRequest("/database/" + expectedBeamtimeId + "/" + expectedStream + "/" + expectedSubstream + "/" + expectedGroupID + "/bla" + correctTokenSuffix,"POST",query_str)
+	suite.Equal(http.StatusBadRequest, w.Code, "ackimage wrong")
+}
diff --git a/broker/src/asapo_broker/server/post_query_images_test.go b/broker/src/asapo_broker/server/post_query_images_test.go
index 49010054bd85f9d34de110e08c680505df97dde4..5ac71bca05115779607015c7c1c604c996c20515 100644
--- a/broker/src/asapo_broker/server/post_query_images_test.go
+++ b/broker/src/asapo_broker/server/post_query_images_test.go
@@ -41,3 +41,4 @@ func (suite *QueryTestSuite) TestQueryOK() {
 	w := doRequest("/database/"+expectedBeamtimeId+"/"+expectedStream+"/"+expectedSubstream+"/0/queryimages"+correctTokenSuffix, "POST", query_str)
 	suite.Equal(http.StatusOK, w.Code, "Query OK")
 }
+
diff --git a/broker/src/asapo_broker/server/server_test.go b/broker/src/asapo_broker/server/server_test.go
index d1c9957df9504d5ad8deb6b6bc37c4136edc16ef..3a7243782c43ca7e5aaae7c7a98f638c547c7ae3 100644
--- a/broker/src/asapo_broker/server/server_test.go
+++ b/broker/src/asapo_broker/server/server_test.go
@@ -117,6 +117,13 @@ func TestReconnectDB(t *testing.T) {
 	db = nil
 }
 
+func TestErrorWhenReconnectNotConnectedDB(t *testing.T) {
+	err := ReconnectDb()
+	assert.NotNil(t, err, "error reconnect")
+	db = nil
+}
+
+
 func TestCleanupDBWithoutInit(t *testing.T) {
 	mock_db := setup()
 
diff --git a/broker/src/asapo_broker/server/statistics.go b/broker/src/asapo_broker/server/statistics.go
index 13b0103306968508b6c3141de9733d9d3cea7066..b5b8ce09d63d139fb78f9f3e1de62638bdd179e7 100644
--- a/broker/src/asapo_broker/server/statistics.go
+++ b/broker/src/asapo_broker/server/statistics.go
@@ -4,7 +4,6 @@ import (
 	log "asapo_common/logger"
 	"fmt"
 	"sync"
-	"time"
 )
 
 type statisticsWriter interface {
@@ -54,14 +53,3 @@ func (st *serverStatistics) WriteStatistic() (err error) {
 	}()
 	return st.Writer.Write(st)
 }
-
-func (st *serverStatistics) Monitor() {
-	for {
-		time.Sleep(1000 * time.Millisecond)
-		if err := st.WriteStatistic(); err != nil {
-		    logstr := "sending statistics to " + settings.PerformanceDbServer + ", dbname: " + settings.PerformanceDbName
-			log.Error(logstr + " - " + err.Error())
-		}
-		st.Reset()
-	}
-}
diff --git a/broker/src/asapo_broker/server/statistics_nottested.go b/broker/src/asapo_broker/server/statistics_nottested.go
new file mode 100644
index 0000000000000000000000000000000000000000..c2728623d93b161305d5f9285cea9af751350466
--- /dev/null
+++ b/broker/src/asapo_broker/server/statistics_nottested.go
@@ -0,0 +1,19 @@
+//+build !test
+
+package server
+
+import (
+	log "asapo_common/logger"
+	"time"
+)
+
+func (st *serverStatistics) Monitor() {
+	for {
+		time.Sleep(1000 * time.Millisecond)
+		if err := st.WriteStatistic(); err != nil {
+		    logstr := "sending statistics to " + settings.PerformanceDbServer + ", dbname: " + settings.PerformanceDbName
+			log.Error(logstr + " - " + err.Error())
+		}
+		st.Reset()
+	}
+}
diff --git a/broker/src/asapo_broker/server/statistics_test.go b/broker/src/asapo_broker/server/statistics_test.go
index 147c1ff90376ac630f69b3f076d21684e320bcf0..47cfa6155ae160183947d2534036280e8edccc4a 100644
--- a/broker/src/asapo_broker/server/statistics_test.go
+++ b/broker/src/asapo_broker/server/statistics_test.go
@@ -1,6 +1,7 @@
 package server
 
 import (
+	"errors"
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/mock"
 	"testing"
@@ -28,17 +29,37 @@ func assertMockWriterExpectations(t *testing.T, mock_writer *mockWriter) {
 func TestWriteStatisticsOK(t *testing.T) {
 	mock_writer := new(mockWriter)
 	statistics.Writer = mock_writer
-	statistics.Reset()
-	statistics.IncreaseCounter()
 
+	mock_writer.On("Init").Return(nil)
 	mock_writer.On("Write", &statistics).Return(nil)
 
+	statistics.Init()
+	statistics.Reset()
+	statistics.IncreaseCounter()
+    counter := statistics.GetCounter()
+
 	err := statistics.WriteStatistic()
 	assert.Nil(t, err, "Statistics written")
+	assert.Equal(t, 1, counter, "counter")
+
+	assertMockWriterExpectations(t, mock_writer)
+}
+
+func TestInitError(t *testing.T) {
+	mock_writer := new(mockWriter)
+	statistics.Writer = mock_writer
+
+	mock_writer.On("Init").Return(errors.New("error"))
+
+	statistics.Init()
+
+	err := statistics.WriteStatistic()
+	assert.NotNil(t, err, "Statistics init error")
 
 	assertMockWriterExpectations(t, mock_writer)
 }
 
+
 func TestWriteStatisticsCatchesError(t *testing.T) {
 	statistics.Writer = nil