diff --git a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/Dialogs/Shared/EmailSkillDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/Dialogs/Shared/EmailSkillDialog.cs index 0ba18685b8..0b5b86c3e7 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/Dialogs/Shared/EmailSkillDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/Dialogs/Shared/EmailSkillDialog.cs @@ -1312,10 +1312,12 @@ protected async Task HandleDialogExceptions(WaterfallStepContext sc, SkillExcept private IDictionary AssembleTelemetryData(WaterfallStepContext sc) { - var telemetryData = new Dictionary(); - telemetryData.Add("activityId", sc.Context.Activity.Id); - telemetryData.Add("userId", sc.Context.Activity.From.Id); - telemetryData.Add("activeDialog", sc.ActiveDialog.ToString()); + var telemetryData = new Dictionary + { + { "activityId", sc.Context.Activity.Id }, + { "userId", sc.Context.Activity.From.Id }, + { "activeDialog", sc.ActiveDialog.ToString() } + }; return telemetryData; } diff --git a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GMailService.cs b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GMailService.cs index e35586173f..be92f826d6 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GMailService.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GMailService.cs @@ -15,6 +15,7 @@ using Google.Apis.Auth.OAuth2.Responses; using Google.Apis.Gmail.v1; using Google.Apis.Gmail.v1.Data; +using Google.Apis.Requests; using Google.Apis.Services; using Google.Apis.Util.Store; using Microsoft.Bot.Solutions.Data; @@ -31,7 +32,7 @@ namespace EmailSkill public class GMailService : IMailService { private static GmailService service; - private int pageSize; + private readonly int pageSize; private string pageToken = string.Empty; /// @@ -75,6 +76,49 @@ public static GmailService GetServiceClient(GoogleClient config, string token) return service; } + public static string Base64UrlEncode(string text) + { + var textBytes = Encoding.UTF8.GetBytes(text); + + var result = System.Convert.ToBase64String(textBytes); + result = result.Split('=')[0]; // Remove any trailing '='s + result = result.Replace('+', '-'); // 62nd char of encoding + result = result.Replace('/', '_'); // 63rd char of encoding + return result; + } + + // decode from base64url to utf-8 bytes + public static byte[] Base64UrlDecode(string text) + { + string result = text; + result = result.Replace('-', '+'); // 62nd char of encoding + result = result.Replace('_', '/'); // 63rd char of encoding + + // Pad with trailing '='s + switch (result.Length % 4) + { + case 0: break; // No pad chars in this case + case 2: result += "=="; break; // Two pad chars + case 3: result += "="; break; // One pad char + default: + throw new System.Exception( + "Illegal base64url string!"); + } + + byte[] textBytes = Convert.FromBase64String(result); + return textBytes; + } + + // decode to mimeMessage + public static MimeMessage DecodeToMessage(string text) + { + byte[] msg = Base64UrlDecode(text); + MemoryStream mm = new MemoryStream(msg); + MimeKit.MimeMessage mime = MimeKit.MimeMessage.Load(mm); + return mime; + } + + /// public async Task ForwardMessageAsync(string id, string content, List recipients) { try @@ -131,28 +175,33 @@ public async Task ForwardMessageAsync(string id, string content, List content = quoted.ToString(); } - await service.Users.Messages.Send( + var sendRequest = service.Users.Messages.Send( new GmailMessage() { Raw = Base64UrlEncode(forward.ToString() + content), ThreadId = threadId, - }, "me").ExecuteAsync(); + }, "me"); + await ((IClientServiceRequest)sendRequest).ExecuteAsync(); } catch (GoogleApiException ex) { throw GoogleClient.HandleGoogleAPIException(ex); } -} + } - public async Task SendMessageAsync(string content, string subject, List recipients) + public async Task SendMessageAsync(string content, string subject, List recipients) { try { // get from address - var user = service.Users.GetProfile("me").Execute(); - var mess = new MailMessage(); - mess.Subject = subject; - mess.From = new MailAddress(user.EmailAddress); + var profileRequest = service.Users.GetProfile("me"); + var user = ((IClientServiceRequest)profileRequest).Execute(); + var mess = new MailMessage + { + Subject = subject, + From = new MailAddress(user.EmailAddress) + }; + foreach (var re in recipients) { mess.To.Add(new MailAddress(re.EmailAddress.Address)); @@ -164,11 +213,12 @@ public async Task SendMessageAsync(string content, string subject, List)sendRequest).ExecuteAsync(); } catch (GoogleApiException ex) { @@ -238,12 +288,13 @@ public async Task> ReplyToMessageAsync(string id, string content content = quoted.ToString(); } - await service.Users.Messages.Send( - new GmailMessage() + var sendRequest = service.Users.Messages.Send( + new GmailMessage() { Raw = Base64UrlEncode(reply.ToString() + content), ThreadId = threadId, - }, "me").ExecuteAsync(); + }, "me"); + await ((IClientServiceRequest)sendRequest).ExecuteAsync(); return null; } catch (GoogleApiException ex) @@ -256,7 +307,8 @@ public async Task> GetMyMessagesAsync(DateTime fromTime, DateTim { try { - var user = service.Users.GetProfile("me").Execute(); + var profileRequest = service.Users.GetProfile("me"); + var user = ((IClientServiceRequest)profileRequest).Execute(); var userAddress = user.EmailAddress; string searchOperation = string.Empty; @@ -302,7 +354,7 @@ public async Task> GetMyMessagesAsync(DateTime fromTime, DateTim var tempReq = service.Users.Messages.List("me"); tempReq.MaxResults = skip; tempReq.Q = searchOperation; - var tempRes = tempReq.Execute(); + var tempRes = ((IClientServiceRequest)tempReq).Execute(); if (tempRes.NextPageToken != null && tempRes.NextPageToken != string.Empty) { this.pageToken = tempRes.NextPageToken; @@ -316,8 +368,8 @@ public async Task> GetMyMessagesAsync(DateTime fromTime, DateTim request.PageToken = this.pageToken; } - ListMessagesResponse response = await request.ExecuteAsync(); - List result = new List(); + var response = await ((IClientServiceRequest)request).ExecuteAsync(); + var result = new List(); // response.Messages only have id and threadID if (response.Messages != null) @@ -326,7 +378,7 @@ public async Task> GetMyMessagesAsync(DateTime fromTime, DateTim { var req = service.Users.Messages.Get("me", temp.Id); req.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw; - return req.ExecuteAsync(); + return ((IClientServiceRequest)req).ExecuteAsync(); })); if (messages != null && messages.Length > 0) { @@ -379,46 +431,21 @@ public string AppendFilterString(string old, string filterString) return result; } - private static string Base64UrlEncode(string text) - { - var textBytes = Encoding.UTF8.GetBytes(text); - return System.Convert.ToBase64String(textBytes) - .Replace('+', '-') - .Replace('/', '_') - .Replace("=", string.Empty); - } - - // decode from base64url to utf-8 bytes - private static byte[] Base64UrlDecode(string text) - { - var temp = text.Replace('-', '+') - .Replace('_', '/'); - byte[] textBytes = Convert.FromBase64String(temp); - return textBytes; // Encoding.UTF8.GetString(textBytes); - } - - // decode to mimeMessage - private static MimeMessage DecodeToMessage(string text) - { - byte[] msg = Base64UrlDecode(text); - MemoryStream mm = new MemoryStream(msg); - MimeKit.MimeMessage mime = MimeKit.MimeMessage.Load(mm); - return mime; - } - private async Task<(MimeMessage, string)> GetMessageById(string id) { var request = service.Users.Messages.Get("me", id); request.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw; - var response = await request.ExecuteAsync(); + var response = await ((IClientServiceRequest)request).ExecuteAsync(); var mime = DecodeToMessage(response.Raw); return (mime, response.ThreadId); } private MSMessage MapMimeMessageToMSMessage(MimeMessage mime) { - MSMessage message = new MSMessage(); - message.ReceivedDateTime = mime.Date; + MSMessage message = new MSMessage + { + ReceivedDateTime = mime.Date + }; if (mime.To != null) { var to = new List(); diff --git a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GooglePeopleService.cs b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GooglePeopleService.cs index 888c2e6291..5f00d63d76 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GooglePeopleService.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/GoogleAPI/GooglePeopleService.cs @@ -10,6 +10,7 @@ using Google.Apis.Auth.OAuth2.Responses; using Google.Apis.People.v1; using Google.Apis.People.v1.Data; +using Google.Apis.Requests; using Google.Apis.Services; using Google.Apis.Util.Store; using Microsoft.Graph; @@ -78,8 +79,8 @@ public async Task> GetPeopleAsync(string name) PeopleResource.ConnectionsResource.ListRequest peopleRequest = service.People.Connections.List("people/me"); peopleRequest.RequestMaskIncludeField = "person.emailAddresses,person.names"; - ListConnectionsResponse connectionsResponse = await peopleRequest.ExecuteAsync(); - IList connections = connectionsResponse.Connections; + ListConnectionsResponse connectionsResponse = await ((IClientServiceRequest)peopleRequest).ExecuteAsync(); + IList connections = connectionsResponse.Connections; var result = new List(); if (connections != null && connections.Count > 0) diff --git a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/IMailService.cs b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/IMailService.cs index c7b7273aef..ba65471c88 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/IMailService.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/ServiceClients/IMailService.cs @@ -41,13 +41,13 @@ public interface IMailService /// /// Start date time. /// End date time. - /// If been read. + /// If been read. /// If important. /// If directly to user. /// Message coming from address. /// Skip message count. /// A representing the result of the asynchronous operation. - Task> GetMyMessagesAsync(DateTime startDateTime, DateTime endDateTime, bool isRead, bool isImportant, bool directlyToMe, string mailAddress, int skip); + Task> GetMyMessagesAsync(DateTime startDateTime, DateTime endDateTime, bool getUnRead, bool isImportant, bool directlyToMe, string mailAddress, int skip); /// /// Delete email. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/GmailUtil.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/GmailUtil.cs new file mode 100644 index 0000000000..4c58671fc0 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/GmailUtil.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.Net.Mail; +using System.Text; +using EmailSkill; +using MimeKit; +using GmailMessage = Google.Apis.Gmail.v1.Data.Message; + +namespace EmailSkillTest.API.Fakes +{ + public class GmailUtil + { + public static IList GetFakeGmailMessageList(int size = 5) + { + var messages = new List(); + + for (int i = 0; i < size; i++) + { + var message = GetFakeGmailMessage(to: "test@test.com" + i); + messages.Add(message); + } + + return messages; + } + + public static GmailMessage GetFakeGmailMessage( + string from = "test@test.com", + string to = "test@test.com", + string subject = "test subject", + string content = "test content") + { + var mess = new MailMessage + { + Subject = subject, + From = new MailAddress(from) + }; + mess.To.Add(new MailAddress(to)); + + var adds = AlternateView.CreateAlternateViewFromString(content, new System.Net.Mime.ContentType("text/plain")); + adds.ContentType.CharSet = Encoding.UTF8.WebName; + mess.AlternateViews.Add(adds); + + var mime = MimeMessage.CreateFromMailMessage(mess); + var gmailMessage = new GmailMessage() + { + Raw = GMailService.Base64UrlEncode(mime.ToString()), + ThreadId = "1" + }; + + return gmailMessage; + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockGoogleServiceClient.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockGoogleServiceClient.cs new file mode 100644 index 0000000000..76a4cf4a67 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockGoogleServiceClient.cs @@ -0,0 +1,56 @@ +using Google.Apis.Gmail.v1; +using Moq; +using static Google.Apis.Gmail.v1.UsersResource; +using GmailMessage = Google.Apis.Gmail.v1.Data.Message; + +namespace EmailSkillTest.API.Fakes +{ + public class MockGoogleServiceClient + { + private readonly Mock mockMailService; + private readonly Mock mockMessagesResource; + private readonly Mock mockUsersResource; + + public MockGoogleServiceClient() + { + this.mockMailService = new Mock(); + this.mockMessagesResource = new Mock(mockMailService.Object); + this.mockUsersResource = new Mock(mockMailService.Object); + + this.mockUsersResource.SetupGet(users => users.Messages).Returns(mockMessagesResource.Object); + + this.mockUsersResource.Setup(users => users.GetProfile(It.IsAny())).Returns((string userId) => + { + MockUsersResource.MockGetProfileRequest mockGetProfileRequest = new MockUsersResource.MockGetProfileRequest(this.mockMailService.Object, userId); + return mockGetProfileRequest; + }); + + this.mockMailService.SetupGet(service => service.Users).Returns(mockUsersResource.Object); + + this.mockMessagesResource.Setup(messages => messages.Send(It.IsAny(), It.IsAny())).Returns((GmailMessage body, string userId) => + { + MockMessagesResource.MockSendRequest mockSendRequest = new MockMessagesResource.MockSendRequest(this.mockMailService.Object, body, userId); + return mockSendRequest; + }); + + this.mockMessagesResource.Setup(messages => messages.Get(It.IsAny(), It.IsAny())).Returns((string userId, string id) => + { + MockMessagesResource.MockGetRequest mockGetRequest = new MockMessagesResource.MockGetRequest(this.mockMailService.Object, userId, id); + + return mockGetRequest; + }); + + this.mockMessagesResource.Setup(messages => messages.List(It.IsAny())).Returns((string userId) => + { + MockMessagesResource.MockListRequest mockListRequest = new MockMessagesResource.MockListRequest(this.mockMailService.Object, userId); + + return mockListRequest; + }); + } + + public Mock GetMockGraphServiceClient() + { + return this.mockMailService; + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockGoogleUserClient.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockGoogleUserClient.cs new file mode 100644 index 0000000000..48c19059a0 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockGoogleUserClient.cs @@ -0,0 +1,34 @@ +using System; +using Google.Apis.People.v1; +using Moq; +using static Google.Apis.People.v1.PeopleResource; + +namespace EmailSkillTest.API.Fakes +{ + public static class MockGoogleUserClient + { + private static Mock mockPeopleResource; + private static Mock mockConnectionsResource; + + static MockGoogleUserClient() + { + MockGoogleUserService = new Mock(); + mockPeopleResource = new Mock(MockGoogleUserService.Object); + mockConnectionsResource = new Mock(MockGoogleUserService.Object); + MockGoogleUserService.SetupGet(service => service.People).Returns(mockPeopleResource.Object); + mockPeopleResource.SetupGet(peopleResource => peopleResource.Connections).Returns(mockConnectionsResource.Object); + mockConnectionsResource.Setup(connect => connect.List(It.IsAny())).Returns((string resourceName) => + { + if (resourceName != "people/me") + { + throw new Exception("Resource Name not support"); + } + + MockListRequest mockListRequest = new MockListRequest(MockGoogleUserService.Object, resourceName); + return mockListRequest; + }); + } + + public static Mock MockGoogleUserService { get; set; } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockListRequest.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockListRequest.cs new file mode 100644 index 0000000000..7a4834b2cb --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockListRequest.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Google.Apis.People.v1.Data; +using Google.Apis.Requests; +using Google.Apis.Services; +using static Google.Apis.People.v1.PeopleResource; + +namespace EmailSkillTest.API.Fakes +{ + public class MockListRequest : ConnectionsResource.ListRequest, IClientServiceRequest + { + public MockListRequest(IClientService service, string resourceName) + : base(service, resourceName) + { + } + + public new async Task ExecuteAsync() + { + if (ResourceName != "people/me") + { + throw new Exception("Resource Name not support"); + } + + ListConnectionsResponse result = new ListConnectionsResponse + { + Connections = new List() + }; + + Person person = new Person() + { + Names = new List(), + EmailAddresses = new List() + }; + + person.Names.Add(new Name() { DisplayName = "Jane Doe", GivenName = "Jane", FamilyName = "Doe", DisplayNameLastFirst = "Jane Doe" }); + person.EmailAddresses.Add(new EmailAddress() { Value = "JaneDeo@test.com" }); + result.Connections.Add(person); + + person = new Person() + { + Names = new List(), + EmailAddresses = new List() + }; + + person.Names.Add(new Name() { DisplayName = "John Doe", GivenName = "John", FamilyName = "Doe", DisplayNameLastFirst = "John Doe" }); + person.EmailAddresses.Add(new EmailAddress() { Value = "JohnDeo@test.com" }); + result.Connections.Add(person); + + await Task.CompletedTask; + return result; + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockMessagesResource.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockMessagesResource.cs new file mode 100644 index 0000000000..4a0e93dc7d --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockMessagesResource.cs @@ -0,0 +1,85 @@ +using System; +using System.Threading.Tasks; +using EmailSkill; +using Google.Apis.Gmail.v1.Data; +using Google.Apis.Requests; +using Google.Apis.Services; +using static Google.Apis.Gmail.v1.UsersResource; +using GmailMessage = Google.Apis.Gmail.v1.Data.Message; + +namespace EmailSkillTest.API.Fakes +{ + public class MockMessagesResource + { + public class MockSendRequest : MessagesResource.SendRequest, IClientServiceRequest + { + public MockSendRequest(IClientService service, GmailMessage body, string userId) + : base(service, body, userId) + { + this.Body = body; + } + + public GmailMessage Body { get; set; } + + public new Task ExecuteAsync() + { + if (UserId != "me") + { + throw new Exception("User ID not support"); + } + + var mime = GMailService.DecodeToMessage(Body.Raw); + return Task.FromResult(this.Body); + } + } + + public class MockGetRequest : MessagesResource.GetRequest, IClientServiceRequest + { + public MockGetRequest(IClientService service, string userId, string id) + : base(service, userId, id) + { + } + + public new Task ExecuteAsync() + { + if (UserId != "me") + { + throw new Exception("User ID not support"); + } + + return Task.FromResult(GmailUtil.GetFakeGmailMessage()); + } + } + + public class MockListRequest : MessagesResource.ListRequest, IClientServiceRequest + { + public MockListRequest(IClientService service, string userId) + : base(service, userId) + { + } + + public new ListMessagesResponse Execute() + { + var result = new ListMessagesResponse(); + var messageList = GmailUtil.GetFakeGmailMessageList(); + + foreach (var message in messageList) + { + result.Messages.Add(message); + } + + return result; + } + + public new Task ExecuteAsync() + { + var result = new ListMessagesResponse + { + Messages = GmailUtil.GetFakeGmailMessageList() + }; + + return Task.FromResult(result); + } + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockUsersResource.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockUsersResource.cs new file mode 100644 index 0000000000..24d2fb132f --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/Google/MockUsersResource.cs @@ -0,0 +1,34 @@ +using System; +using Google.Apis.Gmail.v1.Data; +using Google.Apis.Requests; +using Google.Apis.Services; +using static Google.Apis.Gmail.v1.UsersResource; + +namespace EmailSkillTest.API.Fakes +{ + public class MockUsersResource + { + public class MockGetProfileRequest : GetProfileRequest, IClientServiceRequest + { + public MockGetProfileRequest(IClientService service, string userId) + : base(service, userId) + { + } + + public new Profile Execute() + { + if (UserId != "me") + { + throw new Exception("User ID not support"); + } + + var profile = new Profile + { + EmailAddress = "test@test.com" + }; + + return profile; + } + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockGraphServiceClientGen.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MSGraph/MockGraphServiceClient.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockGraphServiceClientGen.cs rename to solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MSGraph/MockGraphServiceClient.cs index 111e533856..40c57cd11f 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockGraphServiceClientGen.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MSGraph/MockGraphServiceClient.cs @@ -5,11 +5,11 @@ namespace EmailSkillTest.API.Fakes { - public class MockGraphServiceClientGen + public class MockGraphServiceClient { private readonly Mock mockMailService; - public MockGraphServiceClientGen() + public MockGraphServiceClient() { this.mockMailService = new Mock(); this.InitializeDefaultData(); diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockEmailStateAccessor.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockEmailStateAccessor.cs index 2b2b4f177e..26908128df 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockEmailStateAccessor.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockEmailStateAccessor.cs @@ -22,8 +22,10 @@ public MockEmailStateAccessor() public void InitializeDefaultData() { - this.MockEmailSkillState = new EmailSkillState(); - this.MockEmailSkillState.Recipients = new List(); + this.MockEmailSkillState = new EmailSkillState + { + Recipients = new List() + }; } public void SetMockBehavior() diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockServiceManager.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockServiceManager.cs index fa9c527577..00c7ce009a 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockServiceManager.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockServiceManager.cs @@ -8,7 +8,7 @@ public class MockServiceManager : IServiceManager { public IMailService InitMailService(string token, TimeZoneInfo timeZoneInfo, MailSource source) { - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); @@ -17,7 +17,7 @@ public IMailService InitMailService(string token, TimeZoneInfo timeZoneInfo, Mai public IUserService InitUserService(string token, TimeZoneInfo timeZoneInfo, MailSource source) { - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphUserService userService = new MSGraphUserService(serviceClient, timeZoneInfo: TimeZoneInfo.Local); diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockSkillConfiguration.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockSkillConfiguration.cs index 050103ffc4..ea4400a6f9 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockSkillConfiguration.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Fakes/MockSkillConfiguration.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Microsoft.ApplicationInsights; -using Microsoft.Bot.Builder; using Microsoft.Bot.Builder.Azure; using Microsoft.Bot.Solutions.Skills; @@ -12,9 +11,10 @@ public MockSkillConfiguration() { this.TelemetryClient = null; this.CosmosDbOptions = null; - this.AuthenticationConnections = new Dictionary(); - - this.AuthenticationConnections.Add("Google", "Google"); + this.AuthenticationConnections = new Dictionary + { + { "Google", "Google" } + }; } public override Dictionary AuthenticationConnections { get; set; } diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Helper/StepHelperTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Helper/StepHelperTests.cs index 0ca36726b1..f41eb4986a 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Helper/StepHelperTests.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Helper/StepHelperTests.cs @@ -38,8 +38,10 @@ public static void ClassInit(TestContext context) public async Task GetNameListStringTest_OneOption() { // Mock data - mockEmailStateAccessor.MockEmailSkillState = new EmailSkillState(); - mockEmailStateAccessor.MockEmailSkillState.Recipients = GetRecipients(1); + mockEmailStateAccessor.MockEmailSkillState = new EmailSkillState + { + Recipients = GetRecipients(1) + }; mockEmailStateAccessor.SetMockBehavior(); EmailStateAccessor = mockEmailStateAccessor.GetMock().Object; @@ -52,8 +54,10 @@ public async Task GetNameListStringTest_OneOption() public async Task GetNameListStringTest_TwoOptions() { // Mock data - mockEmailStateAccessor.MockEmailSkillState = new EmailSkillState(); - mockEmailStateAccessor.MockEmailSkillState.Recipients = GetRecipients(2); + mockEmailStateAccessor.MockEmailSkillState = new EmailSkillState + { + Recipients = GetRecipients(2) + }; mockEmailStateAccessor.SetMockBehavior(); EmailStateAccessor = mockEmailStateAccessor.GetMock().Object; @@ -66,8 +70,10 @@ public async Task GetNameListStringTest_TwoOptions() public async Task GetNameListStringTest_ThreeOptions() { // Mock data - mockEmailStateAccessor.MockEmailSkillState = new EmailSkillState(); - mockEmailStateAccessor.MockEmailSkillState.Recipients = GetRecipients(3); + mockEmailStateAccessor.MockEmailSkillState = new EmailSkillState + { + Recipients = GetRecipients(3) + }; mockEmailStateAccessor.SetMockBehavior(); EmailStateAccessor = mockEmailStateAccessor.GetMock().Object; @@ -98,10 +104,14 @@ private List GetRecipients(int count) for (int i = 0; i < count; i++) { - var recipient = new Recipient(); - recipient.EmailAddress = new EmailAddress(); - recipient.EmailAddress.Name = "test" + i.ToString(); - recipient.EmailAddress.Address = "test" + i.ToString() + "@test.com"; + var recipient = new Recipient + { + EmailAddress = new EmailAddress + { + Name = "test" + i.ToString(), + Address = "test" + i.ToString() + "@test.com" + } + }; result.Add(recipient); } @@ -116,13 +126,17 @@ private List GetPersonLists(int start, int end) for (int i = start; i < end; i++) { var emailList = new List(); - var scoredEmailAddress = new ScoredEmailAddress(); - scoredEmailAddress.Address = "test" + i.ToString() + "@test.com"; + var scoredEmailAddress = new ScoredEmailAddress + { + Address = "test" + i.ToString() + "@test.com" + }; emailList.Add(scoredEmailAddress); - var person = new Person(); - person.DisplayName = "test" + i.ToString(); - person.ScoredEmailAddresses = emailList; + var person = new Person + { + DisplayName = "test" + i.ToString(), + ScoredEmailAddresses = emailList + }; result.Add(person); } diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GoogleMailServiceTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GoogleMailServiceTests.cs new file mode 100644 index 0000000000..e343872e0a --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GoogleMailServiceTests.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using EmailSkill; +using EmailSkillTest.API.Fakes; +using Microsoft.Graph; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace EmailSkillTest.API +{ + [TestClass] + public class GoogleMailServiceTests + { + public static IMailService MailService { get; set; } + + [ClassInitialize] + public static void ClassInit(TestContext context) + { + var mockGoogleServiceClient = new MockGoogleServiceClient(); + MailService = new GMailService(mockGoogleServiceClient.GetMockGraphServiceClient().Object); + } + + [TestMethod] + public async Task ForwardMessageTest() + { + List recipients = new List + { + new Recipient() + { + EmailAddress = new EmailAddress() + { + Address = "test@test.com" + } + } + }; + + await MailService.ForwardMessageAsync("1", "Test", recipients); + } + + [TestMethod] + public async Task SendMessageTest() + { + List recipients = new List + { + new Recipient() + { + EmailAddress = new EmailAddress() + { + Address = "test@test.com" + } + } + }; + + await MailService.SendMessageAsync("test content", "test subject", recipients); + } + + [TestMethod] + public async Task ReplyMessageTest() + { + await MailService.ReplyToMessageAsync("1", "test content"); + } + + [TestMethod] + public async Task GetMessagesTest() + { + var messageList = await MailService.GetMyMessagesAsync(DateTime.Now, DateTime.Now.AddDays(7), false, false, false, null, 0); + Assert.AreEqual(messageList.Count, 5); + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GoogleUserServiceTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GoogleUserServiceTests.cs new file mode 100644 index 0000000000..bf8f904c08 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GoogleUserServiceTests.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using EmailSkill; +using EmailSkillTest.API.Fakes; +using Microsoft.Graph; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace EmailSkillTest.API +{ + [TestClass] + public class GoogleUserServiceTests + { + public static IUserService UserService { get; set; } + + [ClassInitialize] + public static void ClassInit(TestContext context) + { + UserService = new GooglePeopleService(MockGoogleUserClient.MockGoogleUserService.Object); + } + + [ClassCleanup] + public static void ClassCleanup() + { + } + + [TestInitialize] + public void TestInit() + { + } + + [TestCleanup] + public void TestCleanup() + { + } + + [TestMethod] + public async Task GetPeopleAsyncTest() + { + List result = await UserService.GetPeopleAsync("Doe"); + Assert.IsTrue(result.Count == 2); + } + + [TestMethod] + public async Task GetUserAsyncTest() + { + List result = await UserService.GetUserAsync("Doe"); + Assert.IsTrue(result.Count == 0); + } + + [TestMethod] + public async Task GetContactsAsyncTest() + { + List result = await UserService.GetContactsAsync("Doe"); + Assert.IsTrue(result.Count == 0); + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/MailServiceTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GraphMailServiceTests.cs similarity index 95% rename from solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/MailServiceTests.cs rename to solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GraphMailServiceTests.cs index 37232cb5ed..fbfa649bfb 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/MailServiceTests.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GraphMailServiceTests.cs @@ -10,7 +10,7 @@ namespace EmailSkillTest.API { [TestClass] - public class MailServiceTests + public class GraphMailServiceTests { [ClassInitialize] public static void ClassInit(TestContext context) @@ -28,10 +28,12 @@ public async Task SendMessageTest() recipient.EmailAddress.Address = "test@test.com"; recipient.EmailAddress.Name = "Test Test"; - List recipientList = new List(); - recipientList.Add(recipient); + List recipientList = new List + { + recipient + }; - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); @@ -77,8 +79,10 @@ public async Task GetMyMessagesTest() messages.Add(message); } - var mockGraphServiceClient = new MockGraphServiceClientGen(); - mockGraphServiceClient.MyMessages = messages; + var mockGraphServiceClient = new MockGraphServiceClient + { + MyMessages = messages + }; mockGraphServiceClient.SetMockBehavior(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); @@ -104,7 +108,7 @@ public async Task GetMyMessagesTest() [TestMethod] public async Task ReplyToMessageTest() { - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); @@ -114,7 +118,7 @@ public async Task ReplyToMessageTest() [TestMethod] public async Task UpdateMessageTest() { - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); @@ -125,7 +129,7 @@ public async Task UpdateMessageTest() [TestMethod] public async Task ForwardMessageTest() { - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); @@ -136,7 +140,7 @@ public async Task ForwardMessageTest() [TestMethod] public async Task DeleteMessageTest() { - var mockGraphServiceClient = new MockGraphServiceClientGen(); + var mockGraphServiceClient = new MockGraphServiceClient(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; MSGraphMailAPI mailService = new MSGraphMailAPI(serviceClient, timeZoneInfo: TimeZoneInfo.Local); diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/UserServiceTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GraphUserServiceTests.cs similarity index 94% rename from solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/UserServiceTests.cs rename to solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GraphUserServiceTests.cs index 7b39df7afb..cb75265eea 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/UserServiceTests.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/API/Service/GraphUserServiceTests.cs @@ -8,7 +8,7 @@ namespace EmailSkillTest.API { [TestClass] - public class UserServiceTests + public class GraphUserServiceTests { [ClassInitialize] public static void ClassInit(TestContext context) @@ -39,8 +39,10 @@ public async Task GetUserTest() users.Add(user); } - var mockGraphServiceClient = new MockGraphServiceClientGen(); - mockGraphServiceClient.Users = users; + var mockGraphServiceClient = new MockGraphServiceClient + { + Users = users + }; mockGraphServiceClient.SetMockBehavior(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; @@ -83,8 +85,10 @@ public async Task GetPeopleTest() people.Add(user); } - var mockGraphServiceClient = new MockGraphServiceClientGen(); - mockGraphServiceClient.People = people; + var mockGraphServiceClient = new MockGraphServiceClient + { + People = people + }; mockGraphServiceClient.SetMockBehavior(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; @@ -125,8 +129,10 @@ public async Task GetContactsTest() contacts.Add(contact); } - var mockGraphServiceClient = new MockGraphServiceClientGen(); - mockGraphServiceClient.Contacts = contacts; + var mockGraphServiceClient = new MockGraphServiceClient + { + Contacts = contacts + }; mockGraphServiceClient.SetMockBehavior(); IGraphServiceClient serviceClient = mockGraphServiceClient.GetMockGraphServiceClient().Object; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/DeleteEmailFlowTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/DeleteEmailFlowTests.cs index bbd9d2ee41..246a418c43 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/DeleteEmailFlowTests.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/DeleteEmailFlowTests.cs @@ -4,7 +4,6 @@ using EmailSkill.Dialogs.DeleteEmail.Resources; using EmailSkill.Dialogs.Shared.Resources; using EmailSkillTest.Flow.Fakes; -using EmailSkillTest.Flow.Strings; using EmailSkillTest.Flow.Utterances; using Microsoft.Bot.Schema; using Microsoft.VisualStudio.TestTools.UnitTesting; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/EmailBotTestBase.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/EmailBotTestBase.cs index 9d576d395d..8285d38b00 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/EmailBotTestBase.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/EmailBotTestBase.cs @@ -56,9 +56,11 @@ public override void Initialize() public Activity GetAuthResponse() { - ProviderTokenResponse providerTokenResponse = new ProviderTokenResponse(); - providerTokenResponse.TokenResponse = new TokenResponse(token: "test"); - providerTokenResponse.AuthenticationProvider = OAuthProvider.AzureAD; + ProviderTokenResponse providerTokenResponse = new ProviderTokenResponse + { + TokenResponse = new TokenResponse(token: "test"), + AuthenticationProvider = OAuthProvider.AzureAD + }; return new Activity(ActivityTypes.Event, name: "tokens/response", value: providerTokenResponse); } diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockServiceManager.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockServiceManager.cs index 796158218f..2f69a4797d 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockServiceManager.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockServiceManager.cs @@ -5,24 +5,24 @@ namespace EmailSkillTest.Flow.Fakes { public class MockServiceManager : IServiceManager { - public MockMailService MockMailService; - - public MockUserService MockUserService; - public MockServiceManager() { - MockMailService = new MockMailService(); - MockUserService = new MockUserService(); + MailService = new MockMailService(); + UserService = new MockUserService(); } + public MockMailService MailService { get; set; } + + public MockUserService UserService { get; set; } + public IMailService InitMailService(string token, TimeZoneInfo timeZoneInfo, MailSource mailSource) { - return MockMailService; + return MailService; } public IUserService InitUserService(string token, TimeZoneInfo timeZoneInfo, MailSource mailSource) { - return MockUserService; + return UserService; } } } diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockSkillConfiguration.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockSkillConfiguration.cs index 14410ec3f3..7619a8a988 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockSkillConfiguration.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Fakes/MockSkillConfiguration.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Microsoft.ApplicationInsights; -using Microsoft.Bot.Builder; using Microsoft.Bot.Builder.Azure; using Microsoft.Bot.Solutions; using Microsoft.Bot.Solutions.Skills; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ForwardEmailFlowTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ForwardEmailFlowTests.cs index 9d53251d36..6cacfb0336 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ForwardEmailFlowTests.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ForwardEmailFlowTests.cs @@ -105,7 +105,7 @@ public async Task Test_ForwardEmailWhenNoEmailIsShown() { // Setup email data var serviceManager = this.ServiceManager as MockServiceManager; - serviceManager.MockMailService.MyMessages = serviceManager.MockMailService.FakeMyMessages(0); + serviceManager.MailService.MyMessages = serviceManager.MailService.FakeMyMessages(0); await this.GetTestFlow() .Send(ForwardEmailUtterances.ForwardEmails) diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ShowEmailFlowTests.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ShowEmailFlowTests.cs index eac6057cc9..93ba0f03e4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ShowEmailFlowTests.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/ShowEmailFlowTests.cs @@ -51,10 +51,10 @@ public async Task Test_ShowEmailFromSomeone() { // Setup email data var serviceManager = this.ServiceManager as MockServiceManager; - serviceManager.MockMailService.MyMessages = serviceManager.MockMailService.FakeMyMessages(); + serviceManager.MailService.MyMessages = serviceManager.MailService.FakeMyMessages(); - var message = serviceManager.MockMailService.FakeMessage(senderName: ContextStrings.TestRecipient, senderAddress: ContextStrings.TestEmailAdress); - serviceManager.MockMailService.MyMessages.Add(message); + var message = serviceManager.MailService.FakeMessage(senderName: ContextStrings.TestRecipient, senderAddress: ContextStrings.TestEmailAdress); + serviceManager.MailService.MyMessages.Add(message); await this.GetTestFlow() .Send(ShowEmailUtterances.ShowEmailsFromTestRecipient) @@ -339,7 +339,7 @@ public async Task Test_ShowEmailWithZeroItem() { // Setup email data var serviceManager = this.ServiceManager as MockServiceManager; - serviceManager.MockMailService.MyMessages = serviceManager.MockMailService.FakeMyMessages(0); + serviceManager.MailService.MyMessages = serviceManager.MailService.FakeMyMessages(0); await this.GetTestFlow() .Send(ShowEmailUtterances.ShowEmails) @@ -355,7 +355,7 @@ public async Task Test_ShowEmailWithOneItem() { // Setup email data var serviceManager = this.ServiceManager as MockServiceManager; - serviceManager.MockMailService.MyMessages = serviceManager.MockMailService.FakeMyMessages(1); + serviceManager.MailService.MyMessages = serviceManager.MailService.FakeMyMessages(1); await this.GetTestFlow() .Send(ShowEmailUtterances.ShowEmails) diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Strings/ContextStrings.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Strings/ContextStrings.cs index e38b139059..2dcd9e0b11 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Strings/ContextStrings.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Strings/ContextStrings.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace EmailSkillTest.Flow.Strings +namespace EmailSkillTest.Flow.Strings { public class ContextStrings { diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/BaseTestUtterances.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/BaseTestUtterances.cs index 9424b19a55..642cf9b170 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/BaseTestUtterances.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/BaseTestUtterances.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using Luis; using Microsoft.Bot.Builder; using Microsoft.Bot.Builder.AI.Luis; @@ -44,8 +43,10 @@ public void AddManager(BaseTestUtterances utterances) public Email GetBaseNoneIntent() { - var emailIntent = new Email(); - emailIntent.Intents = new Dictionary(); + var emailIntent = new Email + { + Intents = new Dictionary() + }; emailIntent.Intents.Add(Intent.None, new IntentScore() { Score = TopIntentScore }); return emailIntent; @@ -62,22 +63,25 @@ protected Email CreateIntent( string[] subject = null, string[] message = null) { - var emailIntent = new Email(); - - emailIntent.Text = userInput; + var emailIntent = new Email + { + Text = userInput, - emailIntent.Intents = new Dictionary(); + Intents = new Dictionary() + }; emailIntent.Intents.Add(intent, new IntentScore() { Score = TopIntentScore }); - emailIntent.Entities = new _Entities(); - emailIntent.Entities._instance = new _Entities._Instance(); - - emailIntent.Entities.ordinal = ordinal; - emailIntent.Entities.number = number; - emailIntent.Entities.ContactName = contactName; - emailIntent.Entities.SenderName = senderName; - emailIntent.Entities.EmailSubject = subject; - emailIntent.Entities.Message = message; + emailIntent.Entities = new _Entities + { + _instance = new _Entities._Instance(), + + ordinal = ordinal, + number = number, + ContactName = contactName, + SenderName = senderName, + EmailSubject = subject, + Message = message + }; if (!string.IsNullOrEmpty(userInput)) { diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/DeleteEmailUtterances.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/DeleteEmailUtterances.cs index 11ef76c287..9118d8ab78 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/DeleteEmailUtterances.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/DeleteEmailUtterances.cs @@ -1,5 +1,4 @@ -using EmailSkillTest.Flow.Strings; -using Luis; +using Luis; namespace EmailSkillTest.Flow.Utterances { diff --git a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/GeneralTestUtterances.cs b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/GeneralTestUtterances.cs index ba5823ba08..20f5aac06b 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/GeneralTestUtterances.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/tests/emailskilltest/Flow/Utterances/GeneralTestUtterances.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using Luis; using Microsoft.Bot.Builder; using static Luis.General; @@ -34,8 +33,10 @@ public GeneralTestUtterances() public General GetBaseNoneIntent() { - var generalIntent = new General(); - generalIntent.Intents = new Dictionary(); + var generalIntent = new General + { + Intents = new Dictionary() + }; generalIntent.Intents.Add(Intent.None, new IntentScore() { Score = TopIntentScore }); return generalIntent; @@ -43,8 +44,10 @@ public General GetBaseNoneIntent() protected General CreateIntent(Intent intent) { - var generalIntent = new General(); - generalIntent.Intents = new Dictionary(); + var generalIntent = new General + { + Intents = new Dictionary() + }; generalIntent.Intents.Add(intent, new IntentScore() { Score = TopIntentScore }); generalIntent.Entities = new _Entities();