public void CSharp8SyntaxTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = @" using System; using System.Linq; public class Script { private byte[] bytes = null; private byte[] LoadBytes => bytes ??= new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; public object GetData(SenDev.Xaf.Dashboards.Scripting.ScriptContext context) => LoadBytes; }" ; objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); dataManager.UpdateDataExtractByKey(extract.Oid); extract.Reload(); Assert.Equal(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, extract.ExtractData); } }
public void SaveValidScriptTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var collectionSource = new CollectionSource(objectSpace, typeof(DashboardDataExtract)); var listView = new ListView(collectionSource, application, true); var controller = application.CreateController <DashboardDataExtractController>(); controller.SetView(listView); controller.Active.Clear(); controller.Active["Test"] = true; var dataExtract = objectSpace.CreateObject <DashboardDataExtract>(); dataExtract.Script = @" public class MyClass { public int MyMethod() { return 42; } }" ; objectSpace.CommitChanges(); Assert.Single(objectSpace.GetObjects <DashboardDataExtract>()); } }
public void CompileExceptionTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = @" using System; using System.Linq; public class Script { private byte[] bytes = null; private byte[] LoadBytes => bytes ??= new[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; public object GetData(SenDev.Xaf.Dashboards.Scripting.ScriptContext context) => LoadBytes; }" ; objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); var exception = Assert.Throws <InvalidOperationException>(() => dataManager.UpdateDataExtractByKey(extract.Oid)); Assert.StartsWith("Compilation failed:\n", exception.Message); } }
public void TestEnumerator() { using (var application = XpoInMemoryXafApplication.CreateInstance()) { var numbers = new List <int>(); using (var objectSpace = application.CreateObjectSpace()) { for (int i = 1; i <= 10000; i++) { TestClassWithNameAndNumber tt = objectSpace.CreateObject <TestClassWithNameAndNumber>(); tt.SequentialNumber = i; tt.Name = $"TaskType {i}"; numbers.Add(i); } objectSpace.CommitChanges(); } using (var objectSpace = application.CreateObjectSpace()) { var list = new DashboardDataList(() => (objectSpace.GetObjectsQuery <TestClassWithNameAndNumber>().OrderBy(l => l.SequentialNumber), objectSpace), 1); Assert.Equal(list.Cast <TestClassWithNameAndNumber>().Select(l => l.SequentialNumber), numbers); } } }
public void RestoreEmptyParametersTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) { Dashboard dashboard = new Dashboard(); dashboard.Parameters.Add(new DashboardParameter("IntParameter", typeof(int), 25)); dashboard.Parameters.Add(new DashboardParameter("DateParameter", typeof(DateTime), new DateTime(2019, 04, 09))); var dashboardId = Guid.NewGuid().ToString(); DashboardHelper.RestoreParameters(application, dashboardId, dashboard.Parameters); } }
public void SaveEmptyParametersCollectionTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) { Dashboard dashboard = new Dashboard(); var dashboardId = Guid.NewGuid().ToString(); DashboardHelper.SaveParameters(application, dashboardId, dashboard.Parameters); var options = application.Model.Options as IModelOptionsXtraDashboards; Assert.Empty(options.XtraDashboards); } }
public void DataExtractCollectionDataTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = TemplateHelper.GetScriptTemplate(testObject.GetType(), testObject.GetType().Assembly.GetManifestResourceStream("UnitTests.ScriptTemplate.template")); objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); dataManager.UpdateDataExtractByKey(extract.Oid); } }
public void RestoreParametersTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) { Dashboard dashboard = new Dashboard(); dashboard.Parameters.Add(new DashboardParameter("IntParameter", typeof(int), 25)); dashboard.Parameters.Add(new DashboardParameter("DateParameter", typeof(DateTime), new DateTime(2019, 04, 09))); var dashboardId = Guid.NewGuid().ToString(); DashboardHelper.SaveParameters(application, dashboardId, dashboard.Parameters); dashboard.Parameters[0].Value = 0; dashboard.Parameters[1].Value = DateTime.MinValue; DashboardHelper.RestoreParameters(application, dashboardId, dashboard.Parameters); Assert.Equal(25, dashboard.Parameters[0].Value); Assert.Equal(new DateTime(2019, 04, 09), dashboard.Parameters[1].Value); } }
public void ParameterTypeChangedTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) { Dashboard dashboard = new Dashboard(); dashboard.Parameters.Add(new DashboardParameter("Parameter1", typeof(string), "aaa")); dashboard.Parameters.Add(new DashboardParameter("Parameter2", typeof(int), int.MaxValue)); var dashboardId = Guid.NewGuid().ToString(); DashboardHelper.SaveParameters(application, dashboardId, dashboard.Parameters); dashboard = new Dashboard(); dashboard.Parameters.Add(new DashboardParameter("Parameter1", typeof(int), 25)); dashboard.Parameters.Add(new DashboardParameter("Parameter2", typeof(byte), 35)); DashboardHelper.RestoreParameters(application, dashboardId, dashboard.Parameters); Assert.Equal(25, dashboard.Parameters[0].Value); Assert.Equal(35, dashboard.Parameters[1].Value); } }
public void SaveInvalidScriptTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var collectionSource = new CollectionSource(objectSpace, typeof(DashboardDataExtract)); var listView = new ListView(collectionSource, application, true); var controller = application.CreateController <DashboardDataExtractController>(); controller.SetView(listView); controller.Active.Clear(); controller.Active["Test"] = true; var dataExtract = objectSpace.CreateObject <DashboardDataExtract>(); dataExtract.Script = "invalid script"; var exception = Assert.Throws <UserFriendlyException>(() => objectSpace.CommitChanges()); Assert.Empty(objectSpace.GetObjects <DashboardDataExtract>()); } }
public void ChainedPropertiesTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { for (int i = 1; i <= 10000; i++) { var objectWithReference = objectSpace.CreateObject <TestClassWithReference>(); var objectWithName = objectSpace.CreateObject <TestClassWithName>(); objectWithName.Name = $"Name {i}"; objectWithReference.NamedObject = objectWithName; objectWithReference.Title = $"Reference to {i}"; } objectSpace.CommitChanges(); var list = new ScriptResultList(objectSpace.GetObjectsQuery <TestClassWithReference>(), application.TypesInfo); PropertyDescriptorCollection dataListProperties = list.GetItemProperties(null); var complexProperty = dataListProperties.Find(nameof(TestClassWithReference.NamedObject), false); Assert.NotNull(complexProperty); var nestedProperties = list.GetItemProperties(new[] { complexProperty }); Assert.Equal(2, nestedProperties.Count); } }
public void UpdateDataExtractCore(string dataExtractId) { using (var application = XpoInMemoryXafApplication.CreateInstance()) { } }