public async Task ReceiveMessageShouldGetContactFromContacts() { // Arrange var message = Dummy.CreateMessage(); var identity = message.From.ToIdentity(); var contact = Dummy.CreateContact(); contact.Identity = identity; ContactExtension .GetAsync(identity, Arg.Any <CancellationToken>()) .Returns(contact); var target = GetTarget(); // Act await target.ReceiveAsync(message, CancellationToken); // Assert target.ReceivedItems.Count.ShouldBe(1); target.ReceivedItems[0].message.ShouldBe(message); var actualContact = target.ReceivedItems[0].contact; actualContact.ShouldNotBeNull(); foreach (var property in typeof(Contact).GetProperties()) { property .GetValue(actualContact) .ShouldBe( property.GetValue(contact)); } }
public async Task GetNameTwiceWhenContactExistsShouldUseCachedValue() { // Arrange using (OwnerContext.Create(Application.Identity)) { Configuration.ContactCacheEnabled.Returns(true); Configuration.ContactCacheExpiration.Returns(TimeSpan.FromMinutes(5)); var target = GetTarget(); // Act var actualName = await target.GetVariableAsync("name", Context, CancellationToken); var actualAddress = await target.GetVariableAsync("address", Context, CancellationToken); // Asset actualName.ShouldBe(Contact.Name); actualAddress.ShouldBe(Contact.Address); ContactExtension.Received(1).GetAsync(Arg.Any <Identity>(), Arg.Any <CancellationToken>()); var cachedContact = await OwnerCallerContactMap.GetValueOrDefaultAsync(OwnerCaller.Create(Application.Identity, Contact.Identity)); cachedContact.ShouldNotBeNull(); } }
public ContactVariableProviderTests() { ContactExtension = Substitute.For <IContactExtension>(); Context = Substitute.For <IContext>(); Logger = Substitute.For <ILogger>(); Configuration = Substitute.For <IConfiguration>(); ApplicationSettings = Substitute.For <Application>(); var cacheOwnerCallerContactMap = new CacheOwnerCallerContactMap(); CacheContactExtensionDecorator = new CacheContactExtensionDecorator(ContactExtension, cacheOwnerCallerContactMap, Logger, Configuration, ApplicationSettings); InputContext = new Dictionary <string, object>(); Context.InputContext.Returns(InputContext); Contact = new Contact() { Identity = "*****@*****.**", Name = "John Doe", Address = "184 Alpha Avenue" }; ContactExtension.GetAsync(Contact.Identity, CancellationToken).Returns(Contact); Context.UserIdentity.Returns(Contact.Identity); Context.OwnerIdentity.Returns(new Identity("application", "domain.com")); Configuration.ContactCacheExpiration.Returns(TimeSpan.FromMinutes(5)); ApplicationSettings.Identifier = "application"; ApplicationSettings.Domain = "domain.com"; }
public async Task ReceiveMessageTwiceShouldGetContactFromContactsTwiceWhenCaseExpires() { // Arrange CacheLocally = true; var message = Dummy.CreateMessage(); var identity = message.From.ToIdentity(); var contact = Dummy.CreateContact(); contact.Identity = identity; ContactExtension .GetAsync(identity, Arg.Any <CancellationToken>()) .Returns(contact); var target = GetTarget(); // Act await target.ReceiveAsync(message, CancellationToken); await Task.Delay(CacheExpiration + CacheExpiration); await target.ReceiveAsync(message, CancellationToken); // Assert ContactExtension.Received(2).GetAsync(identity, CancellationToken); }
public StatisticsViewModel() { Columns = new ObservableCollection <string>(); SelectedColumns = new ObservableCollection <string>(ContactExtension.GetContactsColumnNames(new Contact())); ColumnsScore = new ObservableCollection <ColumnScore>(); FilteredContacts = new ObservableCollection <Contact>(); }
private void ThreadProc() { // Get DataTable from cache of contacts DataTable table = ContactExtension.GetDataTableFromContacts(); Deduplication dedup = new Deduplication(new ProgressNotifyDelegate(OnProgress)); // Build columns list for deduplication List <Column> columns = new List <Column>(table.Columns.Count); Column column; for (int i = 0; i < table.Columns.Count; i++) { column = new Column(table.Columns[i].ColumnName); column.SearchIn = SelectedColumns.Contains(column.Name); columns.Add(column); } // Search duplicates DedupTable = dedup.SearchDuplicates(table, columns, null, SeacrhQuality.Normal, _thresholdLevel, ReturnResults.DuplicatesOnly); TotalDuplicates = "Total Duplicates: " + _dedupTable.Rows.Count; ProgressBarVisibility = Visibility.Collapsed; }
/// <summary> /// Gets the Bot's Contact using the <paramref name="identity"/> param /// </summary> /// <param name="identity"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <Contact> GetAsync(Identity identity, CancellationToken cancellationToken) { var contactExtension = new ContactExtension(_sender); var contact = await contactExtension.GetAsync(identity, cancellationToken); return(contact); }
public async Task GetNameWhenContactDoesNotExistsShouldReturnNull() { // Arrange var target = GetTarget(); Contact nullContact = null; ContactExtension.GetAsync(Arg.Any <Identity>(), Arg.Any <CancellationToken>()).Returns(nullContact); // Act var actual = await target.GetVariableAsync("name", Context, CancellationToken); // Asset actual.ShouldBeNull(); }
public async Task GetNameTwiceWhenContactExistsShouldUseCachedValue() { // Arrange var target = GetTarget(); // Act var actualName = await target.GetVariableAsync("name", Context, CancellationToken); var actualADdress = await target.GetVariableAsync("address", Context, CancellationToken); // Asset actualName.ShouldBe(Contact.Name); actualADdress.ShouldBe(Contact.Address); ContactExtension.Received(1).GetAsync(Arg.Any <Identity>(), Arg.Any <CancellationToken>()); }
public async Task GetInvalidContactVariableShouldReturnNull() { // Arrange var contact = new Contact { Name = "John da Silva" }; ContactExtension.GetAsync(User, CancellationToken).Returns(contact); var target = GetTarget(); // Act var actual = await target.GetVariableAsync("contact.invalid", CancellationToken); // Assert actual.ShouldBeNull(); }
public async Task GetContactExtrasVariableShouldSucceed() { // Arrange var contact = new Contact { Name = "John da Silva", Extras = new Dictionary <string, string>() { { "property1", "value 1" } } }; ContactExtension.GetAsync(User, CancellationToken).Returns(contact); var target = GetTarget(); // Act var actual = await target.GetVariableAsync("contact.extras.property1", CancellationToken); // Assert actual.ShouldBe(contact.Extras["property1"]); }
public ContactVariableProviderTests() { ContactExtension = Substitute.For <IContactExtension>(); Logger = Substitute.For <ILogger>(); Configuration = Substitute.For <IConfiguration>(); Application = Substitute.For <Application>(); InputContext = new Dictionary <string, object>(); Context.InputContext.Returns(InputContext); Contact = new Contact() { Identity = "*****@*****.**", Name = "John Doe", Address = "184 Alpha Avenue" }; ContactExtension.GetAsync(Contact.Identity, CancellationToken).Returns(Contact); Context.UserIdentity.Returns(Contact.Identity); Context.OwnerIdentity.Returns(new Identity("application", "domain.com")); Application.Identifier = "application"; Application.Domain = "domain.com"; DocumentSerializer = new DocumentSerializer(new DocumentTypeResolver()); }
public CaseConversionViewModel() { Columns = new ObservableCollection <string>( ContactExtension.GetContactsColumnNames(new Contact())); }
public DeduplicationViewModel() { Columns = new ObservableCollection <string>(); SelectedColumns = new ObservableCollection <string>(ContactExtension.GetContactsColumnNames(new Contact())); }
/// <summary> /// Deletes a contact from the bot's agenda /// </summary> /// <param name="identity"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task DeleteAsync(Identity identity, CancellationToken cancellationToken) { var contactExtension = new ContactExtension(_sender); await contactExtension.DeleteAsync(identity, cancellationToken); }