Beispiel #1
0
        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>());
                }
        }
Beispiel #3
0
        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);
                }
            }
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
 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);
         }
 }
Beispiel #8
0
        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);
            }
        }
Beispiel #9
0
        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);
                }
        }
Beispiel #12
0
 public void UpdateDataExtractCore(string dataExtractId)
 {
     using (var application = XpoInMemoryXafApplication.CreateInstance())
     {
     }
 }