public void When_GetTermsWithSynonymsIsCalled_Then_RepositoryCallsGetTermsWithSynonyms()
        {
            // Given
            var synonymsController = new SynonymsController(_termsAndSynonymsRepositoryMock.Object);

            // When
            synonymsController.GetTermsWithSynonyms();

            // Then
            _termsAndSynonymsRepositoryMock.Verify(mock => mock.GetTermsWithSynonyms(), Times.Once);
        }
        public void When_TermWithSynonymsAreAdded_Then_RepositoryCallsAddNewTermWithSynonyms()
        {
            // Given
            var synonymsController = new SynonymsController(_termsAndSynonymsRepositoryMock.Object);

            // When
            synonymsController.AddNewTermWithSynonyms(_termWithSynonymsInputStub);

            // Then
            _termsAndSynonymsRepositoryMock.Verify(mock => mock.AddNewTermWithSynonyms(_termWithSynonymsInputStub), Times.Once);
        }
        public void When_TermsAndSynonymsRepositoryReturnsListOfWords_Then_ControllersGetTermsWithSynonyms_Returns_200()
        {
            // Given
            var termsAndSynonymsMock = new Mock <ITermsAndSynonymsRepository>();

            termsAndSynonymsMock
            .Setup(mock => mock.GetTermsWithSynonyms())
            .Returns(_wordsStub);
            var synonymsController = new SynonymsController(termsAndSynonymsMock.Object);

            // When
            var result = synonymsController.GetTermsWithSynonyms();

            // Then
            var statusCodeResult = result.Result as ObjectResult;

            Assert.Equal(200, statusCodeResult?.StatusCode);
        }
        public void When_InvalidTermWithSynonymsIsAdded_Then_ControllersAddNewTermWithSynonyms_Returns_500()
        {
            // Given
            var termsAndSynonymsMock = new Mock <ITermsAndSynonymsRepository>();

            termsAndSynonymsMock
            .Setup(mock => mock.AddNewTermWithSynonyms(null))
            .Returns(false);
            var synonymsController = new SynonymsController(termsAndSynonymsMock.Object);

            // When
            var result = synonymsController.AddNewTermWithSynonyms(null);

            // Then
            var statusCodeResult = result as ObjectResult;

            Assert.Equal(500, statusCodeResult?.StatusCode);
        }
        public void When_ValidTermWithSynonymsIsAdded_Then_ControllersAddNewTermWithSynonyms_Returns_200()
        {
            // Given
            var termsAndSynonymsMock = new Mock <ITermsAndSynonymsRepository>();

            termsAndSynonymsMock
            .Setup(mock => mock.AddNewTermWithSynonyms(_termWithSynonymsInputStub))
            .Returns(true);
            var synonymsController = new SynonymsController(termsAndSynonymsMock.Object);

            // When
            var result = synonymsController.AddNewTermWithSynonyms(_termWithSynonymsInputStub);

            // Then
            var statusCodeResult = result as StatusCodeResult;

            Assert.Equal(200, statusCodeResult?.StatusCode);
        }