public void LocalCrmDatabaseOrganizationServiceExecuteTests_RetrieveAttributeRequest() { AttributeMetadata GetMetadata(string field) { return(((RetrieveAttributeResponse)GetService().Execute(new RetrieveAttributeRequest { EntityLogicalName = Account.EntityLogicalName, LogicalName = field })).AttributeMetadata); } TestInitializer.InitializeTestSettings(); var response = GetMetadata(Account.Fields.AccountCategoryCode); Assert.AreEqual(AttributeTypeCode.Picklist, response.AttributeType); Assert.AreEqual(2, ((PicklistAttributeMetadata)response).OptionSet.Options.Count); Assert.AreEqual(AttributeTypeCode.String, GetMetadata(Account.Fields.AccountNumber).AttributeType); Assert.AreEqual(AttributeTypeCode.Uniqueidentifier, GetMetadata(Account.Fields.Id).AttributeType); Assert.AreEqual(AttributeTypeCode.Double, GetMetadata(Account.Fields.Address1_Longitude).AttributeType); Assert.AreEqual(AttributeTypeCode.Decimal, GetMetadata(Account.Fields.ExchangeRate).AttributeType); Assert.AreEqual(AttributeTypeCode.Boolean, GetMetadata(Account.Fields.FollowEmail).AttributeType); Assert.AreEqual(AttributeTypeCode.Integer, GetMetadata(Account.Fields.ImportSequenceNumber).AttributeType); Assert.AreEqual(AttributeTypeCode.Lookup, GetMetadata(Account.Fields.ParentAccountId).AttributeType); }
private void Test(IRegisteredEventsPlugin plugin) { // // Arrange // TestInitializer.InitializeTestSettings(); var contact = new Contact { MobilePhone = "A-1-B-2-C-3" }; // Create Contact to use as target var context = new PluginExecutionContextBuilder(). // Create Context Which is required by the service provider, which is required by the plugin WithRegisteredEvent(plugin.RegisteredEvents.First(e => e.EntityLogicalName == Contact.EntityLogicalName)). // Specifies the plugin event to use in the context WithTarget(contact).Build(); // Sets the Target var provider = new ServiceProviderBuilder(). WithContext(context).Build(); // // Act // plugin.Execute(provider); // Executes the Plugin // // Assert // Assert.AreEqual("123", contact.MobilePhone); }
public void LocalCrmTests_Crud_NestedJoins() { TestInitializer.InitializeTestSettings(); var service = LocalCrmDatabaseOrganizationService.CreateOrganizationService(LocalCrmDatabaseInfo.Create <CrmContext>(Guid.NewGuid().ToString())); var user1 = new Id <SystemUser>(Guid.NewGuid()) { Entity = { FirstName = "Stan", } }; var user2 = new Id <SystemUser>(Guid.NewGuid()) { Entity = { FirstName = "Steve" } }; var account = new Id <Account>(Guid.NewGuid()) { Entity = { Name = "Marvel Comics" } }; var contact1 = new Id <Contact>(Guid.NewGuid()) { Entity = { FirstName = "Bruce", CreatedOnBehalfBy = user1, ModifiedOnBehalfBy = user2 } }; var contact2 = new Id <Contact>(Guid.NewGuid()) { Entity = { FirstName = "Peter", CreatedOnBehalfBy = user2, ModifiedOnBehalfBy = user1 } }; var builder = new DLaBCrmEnvironmentBuilder(). WithChildEntities(account, contact1, contact2). WithEntities(user1, user2); builder.Create(service); var temp = service.GetEntity(contact1); Assert.AreEqual(account.EntityReference, temp.ParentCustomerId); Assert.AreEqual(user1.EntityReference, temp.CreatedOnBehalfBy); Assert.AreEqual(user2.EntityReference, temp.ModifiedOnBehalfBy); temp = service.GetEntity(contact2); Assert.AreEqual(account.EntityReference, temp.ParentCustomerId); Assert.AreEqual(user1.EntityReference, temp.ModifiedOnBehalfBy); Assert.AreEqual(user2.EntityReference, temp.CreatedOnBehalfBy); var qe = QueryExpressionFactory.Create <Account>(a => new { a.Name }); var contactLink = qe.AddLink <Contact>(Account.Fields.Id, Contact.Fields.ParentCustomerId, c => new { c.FirstName, c.Id }); var createdLink = contactLink.AddLink <SystemUser>(Contact.Fields.CreatedOnBehalfBy, SystemUser.Fields.Id, u => new { u.FirstName, u.Id }); var modifiedLink = contactLink.AddLink <SystemUser>(Contact.Fields.ModifiedOnBehalfBy, SystemUser.Fields.Id, u => new { u.FirstName, u.Id }); contactLink.EntityAlias = "ContactLink"; createdLink.EntityAlias = "CreatedLink"; modifiedLink.EntityAlias = "ModifiedLink"; var results = service.RetrieveMultiple(qe); Assert.AreEqual(2, results.Entities.Count); foreach (var entity in results.Entities) { Assert.IsTrue(entity.Attributes.ContainsKey("CreatedLink.firstname")); Assert.IsTrue(entity.Attributes.ContainsKey("ModifiedLink.firstname")); } }
public void AssumedEntities_Load_Should_LoadAssumedEntities() { TestInitializer.InitializeTestSettings(); var service = TestBase.GetOrganizationService(); var assumptions = new AssumedEntities(); assumptions.Load(service, new AccountDefault(), new ContactDefault()); AssertCrm.Exists(service, assumptions.Get <AccountDefault>()); AssertCrm.Exists(service, assumptions.Get <ContactDefault>()); }
public void LocalCrmDatabaseOrganizationServiceExecuteTests_RetrieveEntityRequest() { TestInitializer.InitializeTestSettings(); var response = (RetrieveEntityResponse)GetService().Execute(new RetrieveEntityRequest { EntityFilters = EntityFilters.Entity, LogicalName = Contact.EntityLogicalName, RetrieveAsIfPublished = true }); Assert.AreEqual(Contact.PrimaryNameAttribute, response.EntityMetadata.PrimaryNameAttribute); }
/// <summary> /// Settings required to connect to CRM. /// </summary> private void SettingUpConnectingToCrm() { TestSettings // Test Settings class for XrmUnitTest Framework .UserTestConfigPath // Defines the path to a configuration file .Configure(new PatherFinderProjectOfType( // Defines that path, by the root of the project with the given type typeof(MsTestProvider), // The type to find the project "UnitTestSettings.user.config")); // The name of the config file in the root of the project TestSettings.UserTestConfigPath.Configure( new PatherFinderProjectOfType( typeof(TestMethodClassBase), "UnitTestSettings.user.config")); // Suggest initializing all of the Test Settings in a single place: TestInitializer.InitializeTestSettings(); }
public void SyncContactToAccount_UpdateContactAddress_Should_UpdateAccountAddress_Dirty() { // // Arrange // TestInitializer.InitializeTestSettings(); var service = TestBase.GetOrganizationService(); var contactId = service.Create(new Contact()); var accountId = service.Create(new Account { PrimaryContactId = new EntityReference(Contact.EntityLogicalName, contactId) }); try { var contact = new Contact { Id = contactId, Address1_Line1 = "742 Evergreen Terrace" }; var plugin = new SyncContactToAccount(); var context = new PluginExecutionContextBuilder(). WithFirstRegisteredEvent(plugin). WithTarget(contact).Build(); var provider = new ServiceProviderBuilder(service, context, new DebugLogger()).Build(); // // Act // plugin.Execute(provider); // // Assert // var account = service.GetEntity <Account>(accountId); Assert.AreEqual(contact.Address1_Line1, account.Address1_Line1); } finally { // // Clean up // service.Delete(Account.EntityLogicalName, accountId); service.Delete(Contact.EntityLogicalName, contactId); } }
public void CreateGuidActivity_Request_Should_CreateGuid() { // // Arrange // TestInitializer.InitializeTestSettings(); var workflow = new CreateGuidActivity(); // // Act // var results = new WorkflowInvokerBuilder(workflow). // WithService(service). InvokeWorkflow(); // // Assert // Assert.IsTrue(Guid.TryParse(results.First().Value.ToString(), out _)); }
public void IntializeTestSettings() { TestInitializer.InitializeTestSettings(); }