コード例 #1
0
        public void Cannot_Delete_NoteRender_With_CatalogAssociated()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "DefaultRender",
                Namespace   = "NameSpace",
                IsDefault   = true,
                Description = "Description"
            };
            var savedRender = RenderRepository.Add(render);
            var catalog     = new NoteCatalog
            {
                Name        = "GasLog",
                Render      = savedRender,
                Schema      = "Scheme",
                IsDefault   = true,
                Description = "testing Catalog"
            };

            CatalogRepository.Add(catalog);

            // Act
            var result = RenderRepository.Delete(render);

            // Assert
            Assert.False(result, "Error: deleted render with catalog attached to it");
            Assert.False(RenderRepository.ProcessMessage.Success);
            Assert.Single(RenderRepository.ProcessMessage.MessageList);
        }
コード例 #2
0
        public void Cannot_Update_For_NonExists_NoteRender()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "GasLog",
                Namespace   = "Note.GasLog",
                IsDefault   = true,
                Description = "testing note"
            };

            RenderRepository.Add(render);

            var render2 = new NoteRender
            {
                Name        = "GasLog2",
                Namespace   = "Note.GasLog",
                IsDefault   = false,
                Description = "testing note"
            };

            // Act
            var result = RenderRepository.Update(render2);

            // Assert
            Assert.Null(result);
            Assert.False(RenderRepository.ProcessMessage.Success);
            Assert.Single(RenderRepository.ProcessMessage.MessageList);
        }
コード例 #3
0
        public void Cannot_Delete_NonExists_NoteRender_From_DataSource()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "GasLog",
                Namespace   = "Note.GasLog",
                Description = "testing note"
            };

            RenderRepository.Add(render);

            var render2 = new NoteRender
            {
                Name        = "GasLog2",
                Namespace   = "Note.GasLog2",
                Description = "testing note"
            };

            // Act
            var result = RenderRepository.Delete(render2);

            // Assert
            Assert.False(result);
            Assert.False(RenderRepository.ProcessMessage.Success);
            Assert.Single(RenderRepository.ProcessMessage.MessageList);
        }
コード例 #4
0
        public void Cannot_Update_Non_Exists_Render()
        {
            // Arrange
            var render = new NoteRender
            {
                Name      = "Test Render",
                Namespace = "Default NameSpace"
            };

            // Act
            var updatedRender = _manager.Update(render);

            // Assert
            Assert.False(_manager.ProcessResult.Success);
            Assert.Null(updatedRender);

            // Arrange
            _manager.ProcessResult.Rest();
            render = new NoteRender
            {
                Id        = 54,
                Name      = "Test Render",
                Namespace = "Default NameSpace"
            };

            // Act
            updatedRender = _manager.Update(render);

            // Assert
            Assert.False(_manager.ProcessResult.Success);
            Assert.Null(updatedRender);
        }
コード例 #5
0
        public void Can_Update_NoteRender()
        {
            // Arrange - update name
            var render = new NoteRender
            {
                Name        = "GasLog",
                Namespace   = "Note.GasLog",
                Description = "testing note"
            };

            RenderRepository.Add(render);

            render.Name = "GasLog2";

            // Act
            var result = RenderRepository.Update(render);

            // Assert
            Assert.NotNull(result);
            Assert.Equal("GasLog2", result.Name);

            // Arrange - update description
            render.Description = "new testing note";

            // Act
            result = RenderRepository.Update(render);

            // Assert
            Assert.NotNull(result);
            Assert.Equal("new testing note", result.Description);
        }
コード例 #6
0
        public static NoteRender Clone(this NoteRender source, NoteRender targetRender = null)
        {
            if (source == null)
            {
                return(null);
            }

            if (targetRender == null)
            {
                var target = new NoteRender
                {
                    Id          = source.Id,
                    Name        = source.Name,
                    Namespace   = source.Namespace,
                    IsDefault   = source.IsDefault,
                    Description = source.Description
                };
                return(target);
            }

            targetRender.Id        = source.Id;
            targetRender.Name      = source.Name;
            targetRender.IsDefault = source.IsDefault;
            targetRender.Namespace = source.Namespace;

            return(targetRender);
        }
コード例 #7
0
        public void Can_Search_Subsystem_By_Id()
        {
            // Arrange
            Assert.NotNull(_author);
            var sys = new Subsystem
            {
                Name          = "Test Subsystem",
                DefaultAuthor = _author,
                Description   = "Default Subsystem",
                NoteCatalogs  = new List <NoteCatalog>
                {
                    new()
                    {
                        Name   = "Test Catalog1",
                        Schema = "Test Catalog1 Schema",
                        Render = new NoteRender
                        {
                            Name        = "Test Catalog1 Render",
                            Namespace   = "Hmm.Render",
                            Description = "This is description of test catalog1 render"
                        }
                    }
                }
            };
            var newSys = SubsystemRepository.Add(sys);

            // Act
            var savedSys = SubsystemRepository.GetEntities().FirstOrDefault(c => c.Id == newSys.Id);

            // Assert
            Assert.NotNull(savedSys);
            Assert.Equal(savedSys.Name, sys.Name);
            Assert.True(SubsystemRepository.ProcessMessage.Success);
        }
コード例 #8
0
        public void Cannot_Update_Note_Render_With_DuplicatedName()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "GasLog",
                IsDefault   = true,
                Description = "testing note"
            };

            RenderRepository.Add(render);

            var render2 = new NoteRender
            {
                Name        = "GasLog2",
                IsDefault   = false,
                Description = "testing note2"
            };

            RenderRepository.Add(render2);

            render.Name = render2.Name;

            // Act
            var result = RenderRepository.Update(render);

            // Assert
            Assert.Null(result);
            Assert.False(RenderRepository.ProcessMessage.Success);
            Assert.Single(RenderRepository.ProcessMessage.MessageList);
        }
コード例 #9
0
 private void SetupTestEnv()
 {
     InsertSeedRecords();
     _render = new NoteRender {
         Name = "Test Render"
     };
     _renderMan     = new NoteRenderManager(RenderRepository, new NoteRenderValidator());
     _testValidator = FakeCatalogValidator;
     _manager       = new NoteCatalogManager(CatalogRepository, _testValidator, LookupRepo);
 }
コード例 #10
0
        public void Can_Update_Subsystem()
        {
            // Arrange
            Assert.NotNull(_author);
            var sys = new Subsystem
            {
                Name          = "Test Subsystem",
                DefaultAuthor = _author,
                Description   = "Default Subsystem",
                NoteCatalogs  = new List <NoteCatalog>
                {
                    new()
                    {
                        Name   = "Test Catalog1",
                        Schema = "Test Catalog1 Schema",
                        Render = new NoteRender
                        {
                            Name        = "Test Catalog1 Render",
                            Namespace   = "Hmm.Render",
                            Description = "This is description of test catalog1 render"
                        }
                    },
                    new ()
                    {
                        Name   = "Test Catalog2",
                        Schema = "Test Catalog2 Schema",
                        Render = new NoteRender
                        {
                            Name        = "Test Catalog2 Render",
                            Namespace   = "Hmm.Render",
                            Description = "This is description of test catalog2 render"
                        }
                    }
                }
            };
            var newSys   = SubsystemRepository.Add(sys);
            var savedSys = LookupRepo.GetEntities <Subsystem>().FirstOrDefault(s => s.Id == newSys.Id);

            Assert.NotNull(savedSys);

            // Act
            savedSys.Description = "changed default Subsystem";
            var firstCatalog = savedSys.NoteCatalogs.First();

            Assert.NotNull(firstCatalog);
            firstCatalog.Name        = "Updated Test Catalog1";
            firstCatalog.Render.Name = "Update Test Catalog1 Render Name";
            var updatedSys = SubsystemRepository.Update(savedSys);

            // Assert
            Assert.NotNull(updatedSys);
            Assert.Equal("changed default Subsystem", updatedSys.Description);
            Assert.True(SubsystemRepository.ProcessMessage.Success);
        }
コード例 #11
0
        public void Can_Update_Subsystem()
        {
            // Arrange
            var sys = new Subsystem
            {
                Name          = "Test Subsystem",
                DefaultAuthor = _author,
                Description   = "Default Subsystem",
                NoteCatalogs  = new List <NoteCatalog>
                {
                    new()
                    {
                        Name   = "Test Catalog1",
                        Render = new NoteRender {
                            Name = "Test Render1", Namespace = "Test Namespace"
                        },
                        Schema = "Test Schema1"
                    },
                    new()
                    {
                        Name   = "Test Catalog2",
                        Render = new NoteRender {
                            Name = "Test Render2", Namespace = "Test Namespace"
                        },
                        Schema = "Test Schema2"
                    }
                }
            };

            _manager.Create(sys);
            var savedSys = _manager.GetEntities().FirstOrDefault(s => s.Id == 1);

            Assert.NotNull(savedSys);

            // Act
            savedSys.Description = "changed default Subsystem";
            var savedCatalog = savedSys.NoteCatalogs.FirstOrDefault();

            Assert.NotNull(savedCatalog);
            savedCatalog.Schema             = "Updated Tested schema1";
            savedCatalog.Render.Description = "Tested Render description";

            var updatedSys = _manager.Update(savedSys);

            // Assert
            Assert.True(_manager.ProcessResult.Success);
            Assert.NotNull(updatedSys);
            Assert.Equal("changed default Subsystem", updatedSys.Description);
            Assert.Equal("Updated Tested schema1", updatedSys.NoteCatalogs.First().Schema);
            Assert.Equal("Tested Render description", updatedSys.NoteCatalogs.First().Render.Description);
        }
コード例 #12
0
        public void Cannot_Delete_Author_With_Note_Associated()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "DefaultRender",
                Namespace   = "NameSpace",
                IsDefault   = true,
                Description = "Description"
            };
            var savedRender = RenderRepository.Add(render);

            var catalog = new NoteCatalog
            {
                Name        = "DefaultCatalog",
                Render      = savedRender,
                Schema      = "testScheme",
                IsDefault   = false,
                Description = "Description"
            };
            var savedCatalog = CatalogRepository.Add(catalog);

            var author = new Author
            {
                AccountName = "glog",
                Description = "testing user",
                IsActivated = true
            };
            var savedUser = AuthorRepository.Add(author);

            var note = new HmmNote
            {
                Subject          = string.Empty,
                Content          = string.Empty,
                CreateDate       = DateTime.Now,
                LastModifiedDate = DateTime.Now,
                Author           = savedUser,
                Catalog          = savedCatalog
            };

            NoteRepository.Add(note);

            // Act
            var result = AuthorRepository.Delete(author);

            // Assert
            Assert.False(result, "Error: deleted user with note");
            Assert.False(AuthorRepository.ProcessMessage.Success);
            Assert.Single(AuthorRepository.ProcessMessage.MessageList);
        }
コード例 #13
0
        public void Can_Add_Subsystem_To_DataSource()
        {
            // Arrange
            Assert.NotNull(_author);
            var sys = new Subsystem
            {
                Name          = "Test subsystem",
                DefaultAuthor = _author,
                Description   = "Default subsystem",
                NoteCatalogs  = new List <NoteCatalog>
                {
                    new()
                    {
                        Name   = "Test Catalog1",
                        Schema = "Test Catalog1 Schema",
                        Render = new NoteRender
                        {
                            Name        = "Test Catalog1 Render",
                            Namespace   = "Hmm.Render",
                            Description = "This is description of test catalog1 render"
                        }
                    },
                    new ()
                    {
                        Name   = "Test Catalog2",
                        Schema = "Test Catalog2 Schema",
                        Render = new NoteRender
                        {
                            Name        = "Test Catalog2 Render",
                            Namespace   = "Hmm.Render",
                            Description = "This is description of test catalog2 render"
                        }
                    }
                }
            };

            // Act
            var newSys = SubsystemRepository.Add(sys);

            // Assert
            Assert.NotNull(newSys);
            Assert.Equal(2, newSys.NoteCatalogs.Count());
            Assert.True(newSys.Id > 0, "newSubsystem.Id >=1");
            Assert.Equal("Test subsystem", newSys.Name);
            Assert.True(SubsystemRepository.ProcessMessage.Success);
        }
コード例 #14
0
        public void Can_Add_Render_To_DataSource()
        {
            // Arrange
            var render = new NoteRender
            {
                Name      = "Test Render",
                Namespace = "Default NameSpace"
            };

            // Act
            var newRender = _manager.Create(render);

            // Assert
            Assert.True(_manager.ProcessResult.Success);
            Assert.NotNull(newRender);
            Assert.True(newRender.Id >= 1, "newRender.Id >=1");
            Assert.Equal("Test Render", newRender.Name);
        }
コード例 #15
0
        public void Can_Search_Render_By_Id()
        {
            // Arrange
            var render = new NoteRender
            {
                Name      = "Test Render",
                Namespace = "Default NameSpace"
            };
            var newRender = _manager.Create(render);

            // Act
            var savedRender = _manager.GetEntities().FirstOrDefault(c => c.Id == newRender.Id);

            // Assert
            Assert.True(_manager.ProcessResult.Success);
            Assert.NotNull(savedRender);
            Assert.Equal(savedRender.Name, render.Name);
        }
コード例 #16
0
        public void Can_Delete_NoteRender_From_DataSource()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "GasLog",
                Namespace   = "Note.GasLog",
                Description = "testing note"
            };

            RenderRepository.Add(render);

            // Act
            var result = RenderRepository.Delete(render);

            // Assert
            Assert.True(result);
            Assert.True(RenderRepository.ProcessMessage.Success);
        }
コード例 #17
0
        public void Can_Add_Subsystem_To_DataSource()
        {
            // Arrange
            var oldCatalogCount = _catalogMan.GetEntities().Count();
            var oldRenderCount  = _renderMan.GetEntities().Count();
            var render          = new NoteRender();
            var sys             = new Subsystem
            {
                Name          = "Test subsystem",
                DefaultAuthor = _author,
                Description   = "Default subsystem",
                NoteCatalogs  = new List <NoteCatalog>
                {
                    new()
                    {
                        Name   = "Test Catalog1",
                        Render = render,
                        Schema = ""
                    },
                    new()
                    {
                        Name   = "Test Catalog2",
                        Render = render,
                        Schema = ""
                    }
                }
            };

            // Act
            var newSys          = _manager.Create(sys);
            var newCatalogCount = _catalogMan.GetEntities().Count();
            var newRenderCount  = _renderMan.GetEntities().Count();

            // Assert
            Assert.True(_manager.ProcessResult.Success);
            Assert.NotNull(newSys);
            Assert.True(newSys.Id >= 1, "newSubsystem.Id >=1");
            Assert.Equal("Test subsystem", newSys.Name);
            Assert.Equal(oldCatalogCount + 2, newCatalogCount);
            Assert.Equal(oldRenderCount + 2, newRenderCount);
            Assert.Equal(2, newSys.NoteCatalogs.Count());
        }
コード例 #18
0
        public void NoteRender_Must_Has_Valid_NameSpace_Length(int namespaceLen, bool expected)
        {
            // Arrange
            var render = new NoteRender
            {
                Name      = "Test name",
                Namespace = GetRandomString(namespaceLen)
            };

            // Act
            var processResult = new ProcessingResult();
            var result        = _validator.IsValidEntity(render, processResult);

            // Assert
            Assert.Equal(expected, result);
            if (!expected)
            {
                Assert.NotEmpty(processResult.MessageList[0].Message);
            }
        }
コード例 #19
0
        public NoteCatalogRepositoryTests()
        {
            var render = new NoteRender
            {
                Name        = "TestRender",
                Namespace   = "TestNamespace",
                Description = "Description"
            };

            _render = RenderRepository.Add(render);

            var user = new Author
            {
                AccountName = "fchy",
                Description = "Testing User",
                IsActivated = true,
            };

            _author = AuthorRepository.Add(user);
        }
コード例 #20
0
        public void Cannot_Update_Invalid_Render()
        {
            // Arrange
            var render = new NoteRender
            {
                Name      = "Test Render",
                Namespace = "Default NameSpace"
            };
            var savedRender = _manager.Create(render);

            _testValidator.GetInvalidResult = true;

            // Act
            savedRender.Name = "updated test catalog";
            var updatedRender = _manager.Update(savedRender);

            // Assert
            Assert.False(_manager.ProcessResult.Success);
            Assert.Null(updatedRender);
        }
コード例 #21
0
        public void Can_Add_NoteRender_To_DataSource()
        {
            // Arrange
            var render = new NoteRender
            {
                Name        = "GasLog",
                Namespace   = "Note.GasLog",
                Description = "testing note",
                IsDefault   = true
            };

            // Act
            var savedRec = RenderRepository.Add(render);

            // Assert
            Assert.NotNull(savedRec);
            Assert.True(savedRec.Id > 0, "savedRec.Id> 0");
            Assert.True(render.Id == savedRec.Id, "render.Id == savedRec.Id");
            Assert.True(RenderRepository.ProcessMessage.Success);
        }
コード例 #22
0
        public NoteRender Create(NoteRender render)
        {
            if (!_validator.IsValidEntity(render, ProcessResult))
            {
                return(null);
            }

            try
            {
                var addedRender = _dataSource.Add(render);
                if (addedRender == null)
                {
                    ProcessResult.PropagandaResult(_dataSource.ProcessMessage);
                }
                return(addedRender);
            }
            catch (Exception ex)
            {
                ProcessResult.WrapException(ex);
                return(null);
            }
        }
コード例 #23
0
        public void Can_Update_Render()
        {
            // Arrange
            var render = new NoteRender
            {
                Name      = "Test Render",
                Namespace = "Default NameSpace"
            };
            var newRender   = _manager.Create(render);
            var savedRender = _manager.GetEntityById(newRender.Id);

            Assert.NotNull(savedRender);

            // Act
            savedRender.Namespace = "changed NameSpace";
            var updatedRender = _manager.Update(savedRender);

            // Assert
            Assert.True(_manager.ProcessResult.Success);
            Assert.NotNull(updatedRender);
            Assert.Equal("changed NameSpace", updatedRender.Namespace);
        }
コード例 #24
0
        public async Task <NoteRender> UpdateAsync(NoteRender render)
        {
            if (!_validator.IsValidEntity(render, ProcessResult))
            {
                return(null);
            }

            // make sure the render exists in system
            var savedRender = await _dataSource.GetEntityAsync(render.Id);

            if (savedRender == null)
            {
                ProcessResult.AddErrorMessage($"Cannot update render: {render.Name}, because system cannot find it in data source");
                return(null);
            }
            var updatedRender = await _dataSource.UpdateAsync(render);

            if (updatedRender == null)
            {
                ProcessResult.PropagandaResult(_dataSource.ProcessMessage);
            }

            return(updatedRender);
        }