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()); }
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); }
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); }