[SEBA-627]Importer testing demo test code

Change-Id: I28048ad021f0df8b112c2c6f52f6d3602741bf61
diff --git a/demo_test/test.go b/demo_test/test.go
new file mode 100644
index 0000000..b0502ac
--- /dev/null
+++ b/demo_test/test.go
@@ -0,0 +1,136 @@
+// Copyright 2018 Open Networking Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+        "fmt"
+        "os"
+        "os/signal"
+        "os/exec"
+        "github.com/Shopify/sarama"
+        "google.golang.org/grpc"
+        "golang.org/x/net/context"
+        importer "./proto"
+        log "github.com/Sirupsen/logrus"
+	"time"
+	"bytes"
+	"strings"
+
+)
+
+const (
+	 address     = "localhost:31085"
+	vendor       = "edgecore"
+//	device_ip    = "192.168.3.44:9888"
+	device_ip    = "192.168.4.27:8888"
+	protocol     = "https"
+	freq         = 180
+)
+var importerTopic = "importer"
+var DataConsumer sarama.Consumer
+
+func init() {
+        Formatter := new(log.TextFormatter)
+        Formatter.TimestampFormat = "02-01-2006 15:04:05"
+        Formatter.FullTimestamp = true
+        log.SetFormatter(Formatter)
+}
+
+func topicListener(topic *string, master sarama.Consumer) {
+	log.Info("Starting topicListener for ", *topic)
+	consumer, err := master.ConsumePartition(*topic, 0, sarama.OffsetOldest)
+	if err != nil {
+		log.Error("topicListener panic, topic=[%s]: %s", *topic, err.Error())
+		os.Exit(1)
+	}
+	signals := make(chan os.Signal, 1)
+	signal.Notify(signals, os.Interrupt)
+	doneCh := make(chan struct{})
+	go func() {
+		for {
+			select {
+			case err := <-consumer.Errors():
+				log.Error("Consumer error: %s", err.Err)
+			case msg := <-consumer.Messages():
+				log.Info("Got message on topic=[%s]: %s", *topic, string(msg.Value))
+			case <-signals:
+				log.Warn("Interrupt is detected")
+				doneCh <- struct{}{}
+			}
+		}
+	}()
+	<-doneCh
+}
+
+func kafkainit() {
+	cmd := exec.Command("/bin/sh","kafka_ip.sh")
+	var kafkaIP string
+	var out bytes.Buffer
+	cmd.Stdout = &out
+	err := cmd.Run()
+	if err != nil {
+		log.Info(err)
+		os.Exit(1)
+	}
+
+	kafkaIP = out.String()
+	kafkaIP = strings.TrimSuffix(kafkaIP, "\n")
+	kafkaIP = kafkaIP +":9092"
+	fmt.Println("IP address of kafka-cord-0:",kafkaIP)
+	config := sarama.NewConfig()
+	config.Consumer.Return.Errors = true
+	master, err := sarama.NewConsumer([]string{kafkaIP}, config)
+	if err != nil {
+		panic(err)
+	}
+	DataConsumer = master
+
+	go topicListener(&importerTopic, master)
+}
+func main() {
+	log.Info("kafkaInit starting")
+	kafkainit()
+	// Set up a connection to the server.
+	fmt.Println("Starting connection")
+	conn, err := grpc.Dial(address, grpc.WithInsecure())
+	if err != nil {
+	        fmt.Println("could not connect")
+		log.Fatal("did not connect: %v", err)
+	}
+	defer conn.Close()
+	c := importer.NewDeviceManagementClient(conn)
+
+	ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
+	defer cancel()
+	deviceinfo := new(importer.DeviceInfo)
+	deviceinfo.IpAddress  = device_ip
+	deviceinfo.Vendor     = vendor
+	deviceinfo.Frequency   = freq
+	deviceinfo.Protocol    = protocol
+	_, err = c.SendDeviceInfo(ctx, deviceinfo)
+	if err != nil {
+		log.Fatal("could not SendDeviceInfo: %v", err)
+	}
+        quit := make(chan os.Signal)
+        signal.Notify(quit, os.Interrupt)
+
+        select {
+        case sig := <-quit:
+                fmt.Println("Shutting down:", sig)
+                DataConsumer.Close()
+                        panic(err)
+        }
+
+}