Example #1
0
        public void TestTextAndHtmlContent()
        {
            var store      = new EmailBackedKeyValueStore(null, "store key", "message subject");
            var testObject = new ProcessedTeamsUser(new TeamsDataContext((TeamsParticipant)"8:orgid:00000000-0000-beef-0000-000000000000", new ProcessedTenant(new TeamsInternal.TeamsInternalApi.api.mt.emea.beta.users.Tenant()
            {
                tenantName = "Test Tenant"
            }, DateTime.Now)), (TeamsParticipant)"8:orgid:00000000-0000-beef-0000-000000000000")
            {
                State = ProcessedTeamsUser.TeamsUserState.MissingFromTenant
            };

            store.Set("my key", testObject);

            store.SetTextContent("i am a text");
            store.SetHtmlContent("i am HTML");

            Assert.AreEqual("i am a text", store.GetTextContent());
            Assert.AreEqual("i am HTML", store.GetHtmlContent());

            var attachments = new MimeKit.AttachmentCollection();

            using (var stream = new MemoryStream())
            {
                stream.Write(Encoding.UTF8.GetBytes("i am an attachment"));
                stream.Position = 0;
                attachments.Add("test.txt", stream);
            }
            store.AddAttachments(attachments);
            Assert.AreEqual(1, store.MessageAndId.Message?.Attachments.Count());

            using (var debugStream = new MemoryStream())
            {
                store.MessageAndId.Message?.WriteTo(debugStream);
                var s = Encoding.ASCII.GetString(debugStream.ToArray());
            }

            var readValue = store.GetOrCreateEmpty <ProcessedTeamsUser>("my key");

            Assert.AreEqual("8:orgid:00000000-0000-beef-0000-000000000000", readValue.AsObject?.DataContext.MainUserId.Mri);
        }
Example #2
0
        public async Task TestModifyingExistingMessage()
        {
            using var kernel = new FakeItEasyMockingKernel();
            kernel.Rebind <ILogger>().ToConstant(Log.Logger);
            kernel.Rebind <Configuration>().ToConstant(config);
            kernel.Rebind <ImapConnectionFactory>().ToSelf().InSingletonScope();
            var conFac = kernel.Get <ImapConnectionFactory>();
            var logger = kernel.Get <ILogger>();

            var imapClient = await conFac.GetImapConnectionAsync();

            var folder = imapClient.Inbox;
            await folder.OpenAsync(MailKit.FolderAccess.ReadWrite);

            var message = new MimeMessage();

            message.From.Add(new MailboxAddress(Constants.AppName, Constants.AppFakeEmail));
            message.To.Add(new MailboxAddress(Constants.AppName, Constants.AppFakeEmail));
            message.Subject = "Delete me";

            var id = await folder.AppendAsync(message);

            var readMessage = await folder.GetMessageAsync(id.Value);

            var kvStore = new EmailBackedKeyValueStore(logger, readMessage);

            kvStore.SetTextContent("test text");
            kvStore.SetHtmlContent("<div>test html</div>");
            kvStore.SetJson("jsonValue", "{}");
            kvStore.Set("object", new { Data = "test data" });

            var newId = await folder.ReplaceAsync(id.Value, readMessage);

            Assert.IsTrue(newId.HasValue);

            await folder.SetFlagsAsync(newId.Value, MailKit.MessageFlags.Deleted, true);

            await folder.ExpungeAsync();
        }