public void TestDeleteSecurity() { using (var context = new Xrm(orgAdminUIService)) { var businessunit = new BusinessUnit(); businessunit["name"] = "business unit name 5"; businessunit.Id = orgAdminUIService.Create(businessunit); var orgUser = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.SystemAdministrator); var service = crm.CreateOrganizationService(orgUser.Id); var bus = new dg_bus(); bus.Id = service.Create(bus); var user = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.Scheduler); service = crm.CreateOrganizationService(user.Id); try { service.Delete(bus.LogicalName, bus.Id); throw new XunitException(); } catch (Exception e) { Assert.IsType <FaultException>(e); } var usersBus = new dg_bus(); usersBus.Id = service.Create(usersBus); service.Delete(usersBus.LogicalName, usersBus.Id); } }
public void TestUpdateSecurity() { using (var context = new Xrm(orgAdminUIService)) { var businessunit = new BusinessUnit(); businessunit["name"] = "business unit name 4"; businessunit.Id = orgAdminUIService.Create(businessunit); var orgUser = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.SystemAdministrator); var service = crm.CreateOrganizationService(orgUser.Id); var bus = new dg_bus(); bus.Id = service.Create(bus); var user = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.Scheduler); service = crm.CreateOrganizationService(user.Id); FaultException faultException = null; try { bus.dg_name = "new sadas"; service.Update(bus); Assert.Fail(); } catch (FaultException e) { faultException = e; } var usersBus = new dg_bus(); usersBus.Id = service.Create(usersBus); usersBus.dg_name = "sadsa"; service.Update(usersBus); } }
public void TestParentChangeCascading() { using (var context = new Xrm(orgAdminUIService)) { var businessunit = new BusinessUnit(); businessunit["name"] = "business unit name 6"; businessunit.Id = orgAdminUIService.Create(businessunit); var parentUser = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.Scheduler); var service = crm.CreateOrganizationService(parentUser.Id); var bus = new dg_bus(); bus.Id = service.Create(bus); var parentChild = new dg_child(); parentChild.dg_parentBusId = bus.ToEntityReference(); parentChild.Id = service.Create(parentChild); var otherChild = new dg_child(); otherChild.Id = orgAdminUIService.Create(otherChild); FaultException faultException = null; try { service.Retrieve(otherChild.LogicalName, otherChild.Id, new ColumnSet(true)); Assert.Fail(); } catch (FaultException e) { faultException = e; } otherChild.dg_parentBusId = bus.ToEntityReference(); orgAdminUIService.Update(otherChild); service.Retrieve(otherChild.LogicalName, otherChild.Id, new ColumnSet(true)); } }
public void TestPrecisionSource() { using (var context = new Xrm(orgAdminUIService)) { var currency = new TransactionCurrency() { ExchangeRate = 1m, CurrencyPrecision = 3 }; currency.Id = orgAdminUIService.Create(currency); var bus = new dg_bus() { dg_name = "Woop", dg_Ticketprice = 10.1234m, TransactionCurrencyId = currency.ToEntityReference() }; bus.Id = orgAdminUIService.Create(bus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.AreEqual(Math.Round(bus.dg_Ticketprice.Value, currency.CurrencyPrecision.Value), retrieved.dg_Ticketprice.Value); Assert.AreEqual(Math.Round(Math.Round(bus.dg_Ticketprice.Value, currency.CurrencyPrecision.Value) * 20, 2), retrieved.dg_Udregnet.Value); Assert.AreEqual(Math.Round(Math.Round(bus.dg_Ticketprice.Value, currency.CurrencyPrecision.Value) * 20, 1), retrieved.dg_EndnuUdregnet.Value); } }
public void TestUserCurrencyIsChosen() { using (var context = new Xrm(orgAdminUIService)) { var currentUser = orgAdminUIService.Retrieve(SystemUser.EntityLogicalName, crm.AdminUser.Id, new ColumnSet(true)).ToEntity <SystemUser>(); var currency = new TransactionCurrency { ExchangeRate = 0.5m, CurrencyPrecision = 3 }; currency.Id = orgAdminUIService.Create(currency); currentUser.TransactionCurrencyId = currency.ToEntityReference(); orgAdminUIService.Update(currentUser); var bus = new dg_bus { dg_Ticketprice = 10m }; bus.Id = orgAdminUIService.Create(bus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(currency.ToEntityReference(), retrieved.TransactionCurrencyId); bus.dg_Ticketprice = 20m; orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(currency.ToEntityReference(), retrieved.TransactionCurrencyId); } }
public void TestExchangeRate() { using (var context = new Xrm(orgAdminUIService)) { var dollar = new TransactionCurrency { ExchangeRate = 0.6m, CurrencyPrecision = 3 }; var dollarId = orgAdminUIService.Create(dollar); dollar.Id = dollarId; var bus = new dg_bus { dg_Ticketprice = 10m, TransactionCurrencyId = dollar.ToEntityReference() }; var busId = orgAdminUIService.Create(bus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus; Assert.IsTrue(retrieved.dg_ticketprice_Base.HasValue); Assert.AreEqual(Math.Round(bus.dg_Ticketprice.Value / dollar.ExchangeRate.Value, dollar.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base.Value); } }
public void TestDisassociateWOPrimaryNamePlugin() { using (var context = new Xrm(orgAdminUIService)) { EntityReferenceCollection relatedEntities = new EntityReferenceCollection(); dg_bus bus = new dg_bus { dg_Ticketprice = 1 }; bus.Id = orgAdminService.Create(bus); dg_child child = new dg_child { dg_name = "Margrethe", dg_parentBusId = bus.ToEntityReference() }; child.Id = orgAdminService.Create(child); relatedEntities.Add(new EntityReference(dg_child.EntityLogicalName, child.Id)); Relationship relationship = new Relationship("dg_bus_parental"); orgAdminUIService.Disassociate(dg_bus.EntityLogicalName, bus.Id, relationship, relatedEntities); var retrievedBus = dg_bus.Retrieve(orgAdminService, bus.Id, x => x.dg_Ticketprice); Assert.AreEqual(26, retrievedBus.dg_Ticketprice); } }
public void TestCalculatedIsSet() { using (var context = new Xrm(orgAdminUIService)) { var bus = new dg_bus(); bus.dg_name = "Buu"; bus.Id = orgAdminUIService.Create(bus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.IsNull(retrieved.dg_Udregnet); bus.dg_name = "Woop"; orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.IsNull(retrieved.dg_Udregnet); Assert.IsNull(bus.dg_AllConditions); bus.dg_Ticketprice = 30; bus.dg_EtHelTal = 5; bus.dg_Udkoerselsdato = DateTime.Now; orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.AreEqual(bus.dg_Ticketprice * 20, retrieved.dg_Udregnet); Assert.AreEqual(bus.dg_EtHelTal - 2, retrieved.dg_WholenumberUdregnet); Assert.AreEqual(bus.dg_Udkoerselsdato.Value.AddDays(2), retrieved.dg_DateTimeUdregnet); Assert.AreEqual(bus.dg_name.Substring(2), retrieved.dg_TrimLeft); Assert.IsNotNull(retrieved.dg_AllConditions); } }
public void VirtualTest() { using (var context = new Xrm(orgAdminUIService)) { var bus = new dg_bus { dg_name = "HelloBus" }; var busId = orgAdminService.Create(bus); orgAdminService.Update(new dg_bus { dg_busId = busId, dg_dokumenttyper = new List <dg_dokumenttyper>() { dg_dokumenttyper.Doc, dg_dokumenttyper.PDF } }); var retrieved = orgAdminService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus; var dsdsds = context.dg_busSet.ToList(); Assert.True(retrieved.dg_dokumenttyper.Any()); Assert.Equal(new List <dg_dokumenttyper>() { dg_dokumenttyper.Doc, dg_dokumenttyper.PDF }, retrieved.dg_dokumenttyper); } }
public void TestSettingTransactionCurrency() { using (var context = new Xrm(orgAdminUIService)) { var bus = new dg_bus(); var busId = orgAdminUIService.Create(bus); var query = new QueryExpression(TransactionCurrency.EntityLogicalName); query.Criteria = new FilterExpression(); query.Criteria.AddCondition(new ConditionExpression("isocurrencycode", ConditionOperator.Equal, "DKK")); var resp = orgAdminUIService.RetrieveMultiple(query); var currency = resp.Entities.First().ToEntity <TransactionCurrency>(); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus; Assert.AreEqual(currency.ToEntityReference().Id, retrieved.TransactionCurrencyId.Id); bus.dg_Ticketprice = 10m; orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus; Assert.AreEqual(currency.ToEntityReference().Id, retrieved.TransactionCurrencyId.Id); } }
public void TestExchangeIsSet() { using (var context = new Xrm(orgAdminUIService)) { var dollar = new TransactionCurrency(); dollar.ExchangeRate = 0.6m; dollar.CurrencyPrecision = 3; var dollarId = orgAdminUIService.Create(dollar); dollar.Id = dollarId; var bus = new dg_bus(); bus.dg_Ticketprice = 10m; bus.TransactionCurrencyId = dollar.ToEntityReference(); var busId = orgAdminUIService.Create(bus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus; Assert.IsTrue(retrieved.ExchangeRate.HasValue); Assert.AreEqual(dollar.ExchangeRate, retrieved.ExchangeRate); } }
public void TestCalculatedIsSetRetrieveMultiple() { var bus = new dg_bus { dg_name = "Buu" }; bus.Id = orgAdminUIService.Create(bus); var q = new QueryExpression("dg_bus"); q.ColumnSet = new ColumnSet(true); var all = orgAdminService.RetrieveMultiple(q); Assert.Single(all.Entities); bus.dg_name = "Woop"; orgAdminUIService.Update(bus); all = orgAdminService.RetrieveMultiple(q); var retrieved = (dg_bus)all.Entities.Single(); Assert.Null(retrieved.dg_Udregnet); Assert.Null(retrieved.dg_AllConditions); bus.dg_Ticketprice = 30; bus.dg_EtHelTal = 5; bus.dg_Udkoerselsdato = DateTime.Now; orgAdminUIService.Update(bus); all = orgAdminService.RetrieveMultiple(q); retrieved = (dg_bus)all.Entities.Single(); Assert.Equal(bus.dg_Ticketprice * 20, retrieved.dg_Udregnet); Assert.Equal(bus.dg_EtHelTal - 2, retrieved.dg_WholenumberUdregnet); Assert.Equal(bus.dg_Udkoerselsdato.Value.AddDays(2), retrieved.dg_DateTimeUdregnet); Assert.Equal(bus.dg_name.Substring(2), retrieved.dg_TrimLeft); Assert.NotNull(retrieved.dg_AllConditions); }
public void TestRollUp() { using (var context = new Xrm(orgAdminUIService)) { var childlessBus = new dg_bus() { dg_name = "Buu" }; childlessBus.Id = orgAdminUIService.Create(childlessBus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, childlessBus.Id, new ColumnSet(true)) as dg_bus; Assert.IsNull(retrieved.dg_Totalallowance); childlessBus.dg_name = "Woop"; orgAdminUIService.Update(childlessBus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, childlessBus.Id, new ColumnSet(true)) as dg_bus; Assert.IsNull(retrieved.dg_Totalallowance); var bus = new dg_bus { dg_name = "Woop" }; bus.Id = orgAdminUIService.Create(bus); orgAdminUIService.Create( new dg_child() { dg_name = "Hans Jørgen", dg_Allowance = 20, dg_Skolebus = new EntityReference { Id = bus.Id, LogicalName = dg_bus.EntityLogicalName } }); orgAdminUIService.Create( new dg_child() { dg_name = "Hans Gert", dg_Allowance = 50, dg_Skolebus = new EntityReference { Id = bus.Id, LogicalName = dg_bus.EntityLogicalName } }); var anotherCurrency = new TransactionCurrency() { ExchangeRate = 0.5m, CurrencyPrecision = 2 }; anotherCurrency.Id = orgAdminUIService.Create(anotherCurrency); orgAdminUIService.Create( new dg_child() { dg_name = "Børge Hansen", dg_Allowance = 30, dg_Skolebus = new EntityReference { Id = bus.Id, LogicalName = dg_bus.EntityLogicalName }, TransactionCurrencyId = anotherCurrency.ToEntityReference() }); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.IsNull(retrieved.dg_Totalallowance); Assert.IsNull(retrieved.dg_MaxAllowance); Assert.IsNull(retrieved.dg_MinAllowance); Assert.IsNull(retrieved.dg_AvgAllowance); var req = new CalculateRollupFieldRequest() { FieldName = "dg_totalallowance", Target = bus.ToEntityReference() }; orgAdminUIService.Execute(req); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.AreEqual(130, retrieved.dg_Totalallowance); Assert.IsNull(retrieved.dg_MaxAllowance); Assert.IsNull(retrieved.dg_MinAllowance); Assert.IsNull(retrieved.dg_AvgAllowance); req.FieldName = "dg_maxallowance"; orgAdminUIService.Execute(req); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.AreEqual(130, retrieved.dg_Totalallowance); Assert.AreEqual(60, retrieved.dg_MaxAllowance); Assert.IsNull(retrieved.dg_MinAllowance); Assert.IsNull(retrieved.dg_AvgAllowance); req.FieldName = "dg_minallowance"; orgAdminUIService.Execute(req); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.AreEqual(130, retrieved.dg_Totalallowance); Assert.AreEqual(60, retrieved.dg_MaxAllowance); Assert.AreEqual(20, retrieved.dg_MinAllowance); Assert.IsNull(retrieved.dg_AvgAllowance); req.FieldName = "dg_avgallowance"; orgAdminUIService.Execute(req); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.AreEqual(130, retrieved.dg_Totalallowance.Value); Assert.AreEqual(60, retrieved.dg_MaxAllowance.Value); Assert.AreEqual(20, retrieved.dg_MinAllowance.Value); Assert.AreEqual(43.33m, retrieved.dg_AvgAllowance.Value); } }
public void TestBasesGetUpdated() { using (var context = new Xrm(orgAdminUIService)) { var currency = new TransactionCurrency() { ExchangeRate = 0.5m, CurrencyPrecision = 2 }; currency.Id = orgAdminUIService.Create(currency); // test currency gets set var bus = new dg_bus { TransactionCurrencyId = currency.ToEntityReference() }; bus.Id = orgAdminUIService.Create(bus); var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(bus.TransactionCurrencyId, retrieved.TransactionCurrencyId); // test base value gets updated bus.dg_Ticketprice = 100m; orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / currency.ExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); // test currency doesn't update before record gets updated var oldExchangeRate = currency.ExchangeRate; currency.ExchangeRate = 0.7m; orgAdminUIService.Update(currency); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / oldExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); // test base value gets updated when record field value changes bus.dg_Ticketprice = 120m; orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / currency.ExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); // test base value gets updated when transactioncurrencyid changes var newCurrency = new TransactionCurrency { ExchangeRate = 1m, CurrencyPrecision = 3 }; newCurrency.Id = orgAdminUIService.Create(newCurrency); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / currency.ExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); bus.TransactionCurrencyId = newCurrency.ToEntityReference(); orgAdminUIService.Update(bus); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / newCurrency.ExchangeRate.Value, newCurrency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); // test base value gets updated when state of record changes oldExchangeRate = newCurrency.ExchangeRate; newCurrency.ExchangeRate = 0.3m; orgAdminUIService.Update(newCurrency); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / oldExchangeRate.Value, newCurrency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); bus.SetState(orgAdminUIService, dg_busState.Inactive); retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus; Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / newCurrency.ExchangeRate.Value, newCurrency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base); } }