示例#1
0
                public object Deserialize(TestLoadContext loadContext, Type objectType, Stream stream)
                {
                    byte[] bytes = new byte[stream.Length];
                    stream.Read(bytes, 0, bytes.Length);

                    string val = UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length);

                    var tco = new TestContextObject();

                    tco.LoadContext       = loadContext;
                    tco.DeserializedValue = val;
                    return(tco);
                }
        public async Task DoesRemoveEmptySpacesAsync()
        {
            ArgumentPackBuilder builder = new ArgumentPackBuilder();
            TestContextObject   context = new TestContextObject();

            context.SetQuery("test  string");

            await builder.CheckAsync(null, context, () => default);

            Assert.Equal(2, context.GetArgumentPack().Pack.Length);
            Assert.Equal("test", context.GetArgumentPack().Pack.Take());
            Assert.Equal("string", context.GetArgumentPack().Pack.Take());
        }
示例#3
0
        public async Task AcceptDefaultCommandFromDynamicPrefixAsync()
        {
            var trigger     = new DynamicPrefixTrigger("test.");
            var mockContext = new TestContextObject();

            mockContext.SetService(typeof(DbContext), NewDbContext());
            mockContext.SetService(
                typeof(ICacheClient), new InMemoryCacheClient(new ProtobufSerializer()));

            var mockMessage = new Mock <ITestDiscordMessage>();

            mockMessage.Setup(x => x.Id).Returns(0L);
            mockContext.SetContext(CorePipelineStage.MessageContextKey, mockMessage.Object);
            mockContext.SetContext(CorePipelineStage.QueryContextKey, "test.command");

            var result = await trigger.CheckTriggerAsync(mockContext)
                         .ConfigureAwait(false);

            Assert.Equal("test.", result);
        }
        public async Task TestWithValidContextAsync(string prefix)
        {
            var funcMock    = new Mock <Func <ValueTask> >();
            var serviceMock = new Mock <IPrefixService>();

            serviceMock.Setup(x => x.MatchAsync(It.IsAny <IContext>()))
            .Returns(new ValueTask <string>(prefix));

            var stage = new PipelineStageTrigger(serviceMock.Object);

            var context = new TestContextObject();

            context.SetQuery(prefix + "ping");

            await stage.CheckAsync(null, context, funcMock.Object);

            funcMock.Verify(x => x.Invoke(), Times.Once, "Didn't invoke next()");

            Assert.Equal("ping", context.GetQuery());
            Mock.Verify(funcMock);
        }
示例#5
0
        public async Task MentionTriggerDoesTriggerAsync()
        {
            var mention = "<@12065984510520>";
            var trigger = new MentionTrigger();
            var mock    = new TestContextObject();

            mock.SetContext(CorePipelineStage.QueryContextKey, mention + " test");

            var selfUserMock = new Mock <IDiscordSelfUser>();

            selfUserMock.Setup(x => x.Id).Returns(12065984510520);

            var clientMock = new Mock <IDiscordClient>();

            clientMock.Setup(x => x.GetSelfAsync())
            .Returns(Task.FromResult(selfUserMock.Object));
            mock.SetService(typeof(IDiscordClient), clientMock.Object);

            var result = await trigger.CheckTriggerAsync(mock)
                         .ConfigureAwait(false);

            Assert.Equal(mention, result);
        }