func TestBrokerFactoryError(t *testing.T) { cnf := config.Config{ Broker: "BOGUS", } conn, err := machinery.BrokerFactory(&cnf) if assert.Error(t, err) { assert.Nil(t, conn) assert.Equal(t, "Factory failed with broker URL: BOGUS", err.Error()) } }
func TestBrokerFactory(t *testing.T) { var cnf config.Config // 1) AMQP broker test cnf = config.Config{ Broker: "amqp://*****:*****@localhost:5672/", Exchange: "machinery_exchange", ExchangeType: "direct", DefaultQueue: "machinery_tasks", BindingKey: "machinery_task", } actual, err := machinery.BrokerFactory(&cnf) if assert.NoError(t, err) { expected := brokers.NewAMQPBroker(&cnf) assert.True( t, reflect.DeepEqual(actual, expected), fmt.Sprintf("conn = %v, want %v", actual, expected), ) } // 1) Redis broker test // with password cnf = config.Config{ Broker: "redis://password@localhost:6379", DefaultQueue: "machinery_tasks", } actual, err = machinery.BrokerFactory(&cnf) if assert.NoError(t, err) { expected := brokers.NewRedisBroker(&cnf, "localhost:6379", "password", "", 0) assert.True( t, reflect.DeepEqual(actual, expected), fmt.Sprintf("conn = %v, want %v", actual, expected), ) } // without password cnf = config.Config{ Broker: "redis://localhost:6379", DefaultQueue: "machinery_tasks", } actual, err = machinery.BrokerFactory(&cnf) if assert.NoError(t, err) { expected := brokers.NewRedisBroker(&cnf, "localhost:6379", "", "", 0) assert.True( t, reflect.DeepEqual(actual, expected), fmt.Sprintf("conn = %v, want %v", actual, expected), ) } // using a socket file cnf = config.Config{ Broker: "redis+socket:///tmp/redis.sock", DefaultQueue: "machinery_tasks", } actual, err = machinery.BrokerFactory(&cnf) if assert.NoError(t, err) { expected := brokers.NewRedisBroker(&cnf, "", "", "/tmp/redis.sock", 0) assert.True( t, reflect.DeepEqual(actual, expected), fmt.Sprintf("conn = %v, want %v, actual, expected"), ) } }