package kr.itn.itnhub.mattermost;

import kr.itn.itnhub.AbstractDbTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import static org.assertj.core.api.Assertions.assertThat;

/**
 * {@link MattermostRestClient}가 Spring 컨테이너에 의해 실제로 생성될 수 있는지 검증한다.
 *
 * <p>{@link MattermostRestClientTest}는 {@code new}로 직접 생성하기 때문에 생성자가
 * 여러 개일 때 Spring이 어떤 생성자를 선택할지(혹은 선택하지 못해 컨텍스트 로딩에
 * 실패하는지)를 전혀 검증하지 못한다. 이 테스트는 실제 ApplicationContext를 띄워
 * 빈 생성 단계에서 생성자 모호성으로 인한 회귀를 잡아낸다.</p>
 */
class MattermostRestClientSpringWiringTest extends AbstractDbTest {

    @Autowired
    private MattermostClient mattermostClient;

    @Test
    void MattermostClient_빈이_Spring에_의해_정상_생성된다() {
        assertThat(mattermostClient)
                .isNotNull()
                .isInstanceOf(MattermostRestClient.class);
    }
}
