Beispiel #1
0
        public void ClearDatabaseThenImportDefaultProject()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();

            using (var context = KProcess.Ksmed.Data.ContextFactory.GetNewContext())
            {
                Assert.AreEqual(1, context.Projects.Count());
            }
        }
Beispiel #2
0
        public void SetRelationShipReferenceValueTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();

            var context = ContextFactory.GetNewContext();

            var actionDerived  = context.KActions.First(a => a.OriginalActionId != null);
            var actionOriginal = context.KActions.First(a => a.ActionId == actionDerived.ActionId);

            Assert.IsTrue(
                ObjectContextExt.SetRelationShipReferenceValue(context, actionDerived, actionOriginal, "KProcess.KsmedModel.FK_Action_Orignal", "Action"));
        }
Beispiel #3
0
        public void GetScenariosTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();

            using (var ctx = KProcess.Ksmed.Data.ContextFactory.GetNewContext())
            {
                foreach (var scenario in ctx.Scenarios)
                {
                    GetScenarios(scenario.ScenarioId);
                }
            }
        }
Beispiel #4
0
        public void PredictMergedReferentials_Tests()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();

            // Exporter le projet
            var service = new ImportExportService();

            var       mre    = new System.Threading.ManualResetEvent(false);
            Stream    stream = null;
            Exception e      = null;

            service.ExportProject(SampleData.GetProjectId(), d =>
            {
                stream = d;
                mre.Set();
            }, ex =>
            {
                e = ex;
                mre.Set();
            });

            mre.WaitOne();
            AssertExt.IsExceptionNull(e);
            Assert.IsNotNull(stream);

            stream.Position = 0;

            byte[] importData;
            using (var memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream, StreamExtensions.BufferSize); importData = memoryStream.ToArray(); }

            // PredictMergedReferentials
            mre.Reset();
            KProcess.Ksmed.Business.Dtos.Export.ProjectImport import = null;
            service.PredictMergedReferentialsProject(importData, pi =>
            {
                import = pi;
                mre.Set();
            }, ex =>
            {
                e = ex;
                mre.Set();
            });

            mre.WaitOne();
            AssertExt.IsExceptionNull(e);
            Assert.IsNotNull(import);
        }
Beispiel #5
0
        public void GetActionsDurationsTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();
            using (var ctx = KProcess.Ksmed.Data.ContextFactory.GetNewContext())
            {
                var lastScenario = ctx.Scenarios
                                   .Include("Actions")
                                   .OrderByDescending(s => s.ScenarioId)
                                   .First();

                var res = SharedScenarioActionsOperations.GetActionsBuildDurations(
                    KProcess.Ksmed.Data.ContextFactory.GetNewContext(),
                    new int[] { lastScenario.Actions[0].ActionId, lastScenario.Actions[1].ActionId });

                Assert.IsTrue(res.Any());
            }
        }
Beispiel #6
0
        public void ExportImportVideoDecompositionNoMergeTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();

            using (var ctx = KProcess.Ksmed.Data.ContextFactory.GetNewContext())
            {
                var projectId = ctx.Projects.First().ProjectId;
                ExportVideoDecomposition(
                    projectId,
                    ctx.Scenarios.Where(sc => sc.ProjectId == projectId)
                    .OrderByDescending(sc => sc.ScenarioId)
                    .First()
                    .ScenarioId,
                    ctx.Videos.First().VideoId,
                    projectId,
                    false);
            }
        }
Beispiel #7
0
        public void GetProjectsTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();
            var service = new PrepareService();

            var          mre  = new System.Threading.ManualResetEvent(false);
            ProjectsData data = null;
            Exception    e    = null;

            service.GetProjects(d =>
            {
                data = d;
                mre.Set();
            }, ex =>
            {
                e = ex;
                mre.Set();
            });

            mre.WaitOne();

            // Pour l'instant vérifie qu'aucune exception n'a été levée
            AssertExt.IsExceptionNull(e);
        }
Beispiel #8
0
        public void ConvertActionToReducedActionTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();
            AnalyzeService service = new AnalyzeService();

            var       mre  = new System.Threading.ManualResetEvent(false);
            BuildData data = null;
            Exception e    = null;

            service.GetBuildData(SampleData.GetProjectId(), d =>
            {
                data = d;
                mre.Set();
            }, ex =>
            {
                e = ex;
                mre.Set();
            });

            mre.WaitOne();

            // Pour l'instant vérifie qu'aucune exception n'a été levée
            AssertExt.IsExceptionNull(e);
        }
Beispiel #9
0
        public void BulkScenarioCloneTests()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();
            var service = new PrepareService();

            int[] projectIds;
            using (var context = KProcess.Ksmed.Data.ContextFactory.GetNewContext())
            {
                projectIds = context.Projects.Select(p => p.ProjectId).ToArray();
            }

            foreach (var pid in projectIds)
            {
                var mre = new System.Threading.ManualResetEvent(false);

                Exception     e    = null;
                ScenariosData data = null;

                service.GetScenarios(pid, d =>
                {
                    data = d;
                    mre.Set();
                }, ex =>
                {
                    e = ex;
                    mre.Set();
                });

                mre.WaitOne();
                AssertExt.IsExceptionNull(e);
                Assert.IsNotNull(data);

                foreach (var scenario in data.Scenarios.Where(s => s.NatureCode != KnownScenarioNatures.Realized))
                {
                    if (scenario.NatureCode == KnownScenarioNatures.Target && scenario.Actions.Any(a => !a.IsReduced))
                    {
                        // Il s'agit d'un vieux projet. Tous les actions d'un scénario cible doivent aujourd'hui avoir une partie réduite
                        continue;
                    }

                    mre.Reset();

                    Scenario newScenario = null;

                    service.CreateScenario(pid, scenario, true, s =>
                    {
                        newScenario = s;
                        mre.Set();
                    }, ex =>
                    {
                        e = ex;
                        mre.Set();
                    });

                    mre.WaitOne();
                    AssertExt.IsExceptionNull(e);
                    Assert.IsNotNull(newScenario);

                    // Vérification de l'intégrité du scénario
                    ActionsTimingsMoveManagement.DebugCheckAllWBS(EnumerableExt.Concat(newScenario));

                    // Vérifier qu'il n'y ai pas de tâche avec un temps process nul
                    if (scenario.NatureCode != KnownScenarioNatures.Initial && newScenario.Actions.Any(a => a.BuildDuration <= 0))
                    {
                        Assert.Fail("Une action a un temps invalide");
                    }
                }
            }
        }
Beispiel #10
0
        public void ExportImportProjectNoMergeServiceTest()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();

            ExportProject(SampleData.GetProjectId(), false);
        }
Beispiel #11
0
        public void TestsIsActionInternalExternalDeletedMutuallyExclusive()
        {
            SampleData.ClearDatabaseThenImportDefaultProject();
            // Vérifie dans toutes les actions de la BDD si les actions sont soi I, E ou S et jamais aucun des trois ou plus d'un des 3 à la fois.
            var prepareService = new PrepareService();
            var analyzeService = new AnalyzeService();
            var mre            = new System.Threading.ManualResetEvent(false);

            ProjectsData pData     = null;
            Exception    exception = null;

            prepareService.GetProjects(d =>
            {
                pData = d;
                mre.Set();
            }, ex =>
            {
                exception = ex;
                mre.Set();
            });

            mre.WaitOne();
            AssertExt.IsExceptionNull(exception);

            foreach (var project in pData.Projects)
            {
                mre.Reset();
                RestitutionData rData = null;
                analyzeService.GetFullProjectDetails(project.ProjectId, d =>
                {
                    rData = d;
                    mre.Set();
                }, ex =>
                {
                    exception = ex;
                    mre.Set();
                });

                mre.WaitOne();
                AssertExt.IsExceptionNull(exception);

                foreach (var scenario in rData.Scenarios)
                {
                    foreach (var action in scenario.Actions)
                    {
                        bool i = ActionsTimingsMoveManagement.IsActionInternal(action);
                        bool e = ActionsTimingsMoveManagement.IsActionExternal(action);
                        bool s = ActionsTimingsMoveManagement.IsActionDeleted(action);

                        Assert.IsTrue(i || e || s);

                        if (i)
                        {
                            Assert.IsFalse(e || s);
                        }
                        else if (e)
                        {
                            Assert.IsFalse(i || s);
                        }
                        else
                        {
                            Assert.IsFalse(i || e);
                        }
                    }
                }
            }
        }