2015-09-27 15:59:51 +02:00
package main
import (
"net/http"
"os/exec"
"time"
2016-01-13 22:46:44 +01:00
"fmt"
2015-09-27 15:59:51 +02:00
checker "github.com/vdemeester/shakers"
check "gopkg.in/check.v1"
)
2015-11-03 23:06:31 +01:00
// SimpleSuite
type SimpleSuite struct { BaseSuite }
2015-09-27 15:59:51 +02:00
func ( s * SimpleSuite ) TestNoOrInexistentConfigShouldFail ( c * check . C ) {
cmd := exec . Command ( traefikBinary )
output , err := cmd . CombinedOutput ( )
c . Assert ( err , checker . NotNil )
2016-01-13 22:46:44 +01:00
c . Assert ( string ( output ) , checker . Contains , "Error reading file: open : no such file or directory" )
2015-09-27 15:59:51 +02:00
nonExistentFile := "non/existent/file.toml"
2016-01-13 22:46:44 +01:00
cmd = exec . Command ( traefikBinary , "--configFile=" + nonExistentFile )
2015-09-27 15:59:51 +02:00
output , err = cmd . CombinedOutput ( )
c . Assert ( err , checker . NotNil )
2015-10-01 12:04:25 +02:00
c . Assert ( string ( output ) , checker . Contains , fmt . Sprintf ( "Error reading file: open %s: no such file or directory" , nonExistentFile ) )
2015-09-27 15:59:51 +02:00
}
func ( s * SimpleSuite ) TestInvalidConfigShouldFail ( c * check . C ) {
2016-01-13 22:46:44 +01:00
cmd := exec . Command ( traefikBinary , "--configFile=fixtures/invalid_configuration.toml" )
2015-09-27 15:59:51 +02:00
output , err := cmd . CombinedOutput ( )
c . Assert ( err , checker . NotNil )
2016-01-13 22:46:44 +01:00
c . Assert ( string ( output ) , checker . Contains , "Error reading file: While parsing config: Near line 1" )
2015-09-27 15:59:51 +02:00
}
func ( s * SimpleSuite ) TestSimpleDefaultConfig ( c * check . C ) {
2016-01-13 22:46:44 +01:00
cmd := exec . Command ( traefikBinary , "--configFile=fixtures/simple_default.toml" )
2015-09-27 15:59:51 +02:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
2015-11-03 23:06:31 +01:00
defer cmd . Process . Kill ( )
2015-09-27 15:59:51 +02:00
2015-10-08 22:11:34 +02:00
time . Sleep ( 500 * time . Millisecond )
2015-09-27 15:59:51 +02:00
// TODO validate : run on 80
2016-01-13 22:46:44 +01:00
resp , err := http . Get ( "http://127.0.0.1:8000/" )
2015-09-27 15:59:51 +02:00
2016-02-01 11:07:05 +01:00
// Expected no response as we did not configure anything
c . Assert ( resp , checker . IsNil )
c . Assert ( err , checker . NotNil )
c . Assert ( err . Error ( ) , checker . Contains , fmt . Sprintf ( "getsockopt: connection refused" ) )
2015-11-03 23:06:31 +01:00
}
func ( s * SimpleSuite ) TestWithWebConfig ( c * check . C ) {
2016-01-13 22:46:44 +01:00
cmd := exec . Command ( traefikBinary , "--configFile=fixtures/simple_web.toml" )
2015-11-03 23:06:31 +01:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
defer cmd . Process . Kill ( )
time . Sleep ( 500 * time . Millisecond )
2015-09-27 15:59:51 +02:00
2015-11-03 23:06:31 +01:00
resp , err := http . Get ( "http://127.0.0.1:8080/api" )
// Expected a 200
c . Assert ( err , checker . IsNil )
c . Assert ( resp . StatusCode , checker . Equals , 200 )
2015-09-27 15:59:51 +02:00
}