package topology

import (
	"fmt"
	"testing"
)

func TestLoadConfiguration(t *testing.T) {

	confContent := `

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
  <Topology>
    <DataCenter name="dc1">
      <Rack name="rack1">
        <Ip>192.168.1.1</Ip>
      </Rack>
    </DataCenter>
    <DataCenter name="dc2">
      <Rack name="rack1">
        <Ip>192.168.1.2</Ip>
      </Rack>
      <Rack name="rack2">
        <Ip>192.168.1.3</Ip>
        <Ip>192.168.1.4</Ip>
      </Rack>
    </DataCenter>
  </Topology>
</Configuration>
`
	c, err := NewConfiguration([]byte(confContent))

	fmt.Printf("%s\n", c)
	if err != nil {
		t.Fatalf("unmarshal error:%v", err)
	}

	if len(c.Topo.DataCenters) <= 0 || c.Topo.DataCenters[0].Name != "dc1" {
		t.Fatalf("unmarshal error:%s", c)
	}
}