예제 #1
0
        private void ArrangeByDefault()
        {
            var brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var retorts = Retorts.Instance(_context.Object, _provider.Object);

            Retorts.ReadOnlyFile = true;
        }
예제 #2
0
        public void GetInstanceTest()
        {
            // Arrange
            var brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var retorts = Retorts.Instance(_context.Object, _provider.Object);

            // Act

            // Assert
            Assert.NotNull(retorts);
        }
예제 #3
0
        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        /// <param name="accessors">A class containing <see cref="IStatePropertyAccessor{T}"/> used to manage state.</param>
        /// <param name="loggerFactory">A <see cref="ILoggerFactory"/> that is hooked to the Azure App Service provider.</param>
        /// <seealso cref="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-2.1#windows-eventlog-provider"/>
        public VoicyBot1Bot(VoicyBot1Accessors accessors, ILoggerFactory loggerFactory)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _logger = loggerFactory.CreateLogger <VoicyBot1Bot>();
            _logger.LogTrace("Turn start.");
            _accessors = accessors ?? throw new ArgumentNullException(nameof(accessors));

            _questionsAboutTime = new QuestionsAboutTime();
            _retorts            = new Retorts();
            _d20         = new D20();
            _translation = new Translation();
            _images      = new Images();
        }
예제 #4
0
        public void ClearEmptyTest()
        {
            // Arrange
            var brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var retorts = Retorts.Instance(_context.Object, _provider.Object);

            Retorts.ReadOnlyFile = true;

            // Act
            retorts.Clear();

            // Assert
            Assert.True(retorts.IsEmpty());
        }
예제 #5
0
        public void ClearTest()
        {
            // Arrange
            var retorts  = new Retorts("test");
            var question = "question1_test";
            var answer   = "defaultAnswer1_test";

            retorts.Add(question.Trim(), answer);
            Assert.True(retorts.Count() > 0);
            var expectedSize = 0;

            // Act
            retorts.Clear();
            var actualSize = retorts.Count();

            // Assert
            Assert.Equal(expectedSize, actualSize);
        }
예제 #6
0
        public void ClearCountAfterInitTest()
        {
            // Arrange
            const uint expected   = 0;
            var        brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var retorts = Retorts.Instance(_context.Object, _provider.Object);

            Retorts.ReadOnlyFile = true;

            // Act
            var actual = retorts.Count;

            // Assert
            Assert.Equal(expected, actual);
        }
예제 #7
0
        public void ContainsTest(string question, bool expected, bool existsBefore)
        {
            // Arrange
            var retorts = new Retorts("test");

            retorts.Clear();
            var answer = "defaultAnswer1";

            if (existsBefore)
            {
                retorts.Add(question.Trim(), answer);
            }

            // Act
            var result = retorts.Contains(question);

            // Assert
            Assert.Equal(expected, result);
        }
예제 #8
0
        public void ProcessTest(string request, string expected)
        {
            // Arrange
            var brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var     skills  = SkillFactory.GetInstance(_context.Object, _provider.Object);
            Retorts retorts = Retorts.Instance(_context.Object, _provider.Object);
            // TODO add call to load retorts from file
            var resultOfAdd = retorts.Add("hi", "hello");

            // Act
            var  actual  = retorts.Process(request);
            bool removal = retorts.Remove("hi");

            // Assert
            Assert.Equal(expected, actual);
        }
예제 #9
0
        public void RemoveTest(string given_key, string given_value, bool expected)
        {
            // Arrange
            var brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var retorts = Retorts.Instance(_context.Object, _provider.Object);

            Retorts.ReadOnlyFile = true;

            // Act
            retorts.Clear();
            var added   = retorts.Add(given_key, given_value);
            var removal = retorts.Remove(given_key);

            // Assert
            Assert.Equal(expected, removal);
        }
예제 #10
0
        public void ClearCountAfterLoadTest()
        {
            // Arrange
            var brainState = new BrainState();

            _provider.Setup(p => p.GetConversationState <BrainState>(_context.Object))
            .Returns(brainState);
            var retorts = Retorts.Instance(_context.Object, _provider.Object);

            Retorts.ReadOnlyFile = true;

            // Act
            retorts.Clear();
            retorts.Load();
            var actual = retorts.Count;

            // Assert
            Assert.True(actual > 0);
        }
예제 #11
0
        public void RemoveTest(string line, bool expected, bool existsBefore)
        {
            // Arrange
            var retorts = new Retorts("test");

            retorts.Clear();
            var question = (!string.IsNullOrWhiteSpace(line)) ? line.Split("|")[1] : "";
            var answer   = "defaultAnswer1";

            if (existsBefore)
            {
                Assert.True(retorts.Add(question, answer));
            }

            // Act
            var result = retorts.Remove(line);

            // Assert
            Assert.Equal(expected, result);
        }
예제 #12
0
        public void CountTest(bool mustHaveEntries)
        {
            // Arrange
            var retorts = new Retorts("test");

            retorts.Clear();
            var expectedSize = 0;

            if (mustHaveEntries)
            {
                var question = "question1_test";
                var answer   = "defaultAnswer1_test";
                Assert.True(retorts.Add(question.Trim(), answer));
                expectedSize = 1;
            }

            // Act
            var actualSize = retorts.Count();

            // Assert
            Assert.Equal(expectedSize, actualSize);
        }