Пример #1
0
        public void should_not_error_if_it_can_not_find_assemblies_to_doc()
        {
            var resourceManager = MockRepository.GenerateMock <IUntransformableResourceManager>();
            var generator       = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, StubWriter, resourceManager, StubEventAggregator);

            generator.SetOutputPath("output-dir");
            generator.Generate();

            StubWriter.AssertWasNotCalled(x => x.CreatePagesFromDirectory(null, null, null), x => x.Constraints(Is.Anything(), Is.Anything(), Is.Anything()));
        }
Пример #2
0
        public void should_not_error_if_it_can_not_find_assemblies_to_doc()
        {
            var resourceManager = MockRepository.GenerateMock<IUntransformableResourceManager>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, StubWriter, resourceManager, StubEventAggregator);

            generator.SetOutputPath("output-dir");
            generator.Generate();

            StubWriter.AssertWasNotCalled(x => x.CreatePagesFromDirectory(null, null, null), x => x.Constraints(Is.Anything(), Is.Anything(), Is.Anything()));
        }
Пример #3
0
        public void should_pass_default_output_path_to_writer_if_not_set()
        {
            var writer    = MockRepository.GenerateMock <IBulkPageWriter>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, writer, StubResourceManager, StubEventAggregator);

            generator.SetAssemblies(new[] { "unimportant_file_path" });
            generator.Generate();

            writer.AssertWasCalled(x => x.CreatePagesFromDirectory(null, null, null),
                                   x => x.Constraints(Is.Anything(), Is.Equal("output"), Is.Anything()));
        }
Пример #4
0
        public void generate_should_pass_assemblies_to_parser_when_set_directly()
        {
            var parser = MockRepository.GenerateMock<IAssemblyXmlParser>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, parser, StubWriter, StubResourceManager, StubEventAggregator);

            generator.SetXmlContent(new[] { "content" });
            generator.Generate();

            parser.AssertWasCalled(x => x.CreateDocumentModel(null, null),
                x => x.Constraints(Is.Anything(), List.ContainsAll(new[] { "content" })));
        }
Пример #5
0
        public void should_pass_default_output_path_to_writer_if_not_set()
        {
            var writer = MockRepository.GenerateMock<IBulkPageWriter>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, writer, StubResourceManager, StubEventAggregator);

            generator.SetAssemblies(new[] { "unimportant_file_path" });
            generator.Generate();

            writer.AssertWasCalled(x => x.CreatePagesFromDirectory(null, null, null),
                                   x => x.Constraints(Is.Anything(), Is.Equal("output"), Is.Anything()));
        }
Пример #6
0
        public void generate_should_pass_assemblies_to_parser_when_set_directly()
        {
            var parser    = MockRepository.GenerateMock <IAssemblyXmlParser>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, parser, StubWriter, StubResourceManager, StubEventAggregator);

            generator.SetAssemblies(new[] { typeof(IAssemblyLoader).Assembly });
            generator.Generate();

            parser.AssertWasCalled(x => x.CreateDocumentModel(null, null),
                                   x => x.Constraints(List.ContainsAll(new[] { typeof(IAssemblyLoader).Assembly }), Is.Anything()));
        }
Пример #7
0
        public void should_move_untransformable_resources_to_output_dir()
        {
            var resourceManager = MockRepository.GenerateMock <IUntransformableResourceManager>();
            var generator       = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, StubWriter, resourceManager, StubEventAggregator);

            generator.SetAssemblies(new[] { "unimportant_file_path" });
            generator.SetOutputPath("output-dir");
            generator.Generate();

            resourceManager.AssertWasCalled(x => x.MoveResources(null, null),
                                            x => x.Constraints(Is.Anything(), Is.Equal("output-dir")));
        }
Пример #8
0
        public void should_move_untransformable_resources_to_output_dir()
        {
            var resourceManager = MockRepository.GenerateMock<IUntransformableResourceManager>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, StubWriter, resourceManager, StubEventAggregator);

            generator.SetAssemblies(new[] { "unimportant_file_path" });
            generator.SetOutputPath("output-dir");
            generator.Generate();

            resourceManager.AssertWasCalled(x => x.MoveResources(null, null),
                                            x => x.Constraints(Is.Anything(), Is.Equal("output-dir")));
        }
Пример #9
0
        public void generate_should_pass_xmls_to_parser_when_set_by_name()
        {
            var parser = MockRepository.GenerateMock<IAssemblyXmlParser>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, parser, StubWriter, StubResourceManager, StubEventAggregator);

            StubXmlLoader.Stub(x => x.LoadFrom(null))
                .IgnoreArguments()
                .Return("content");

            generator.SetXmlFiles(new[] { "assembly.xml" });
            generator.Generate();

            parser.AssertWasCalled(x => x.CreateDocumentModel(null, null),
                x => x.Constraints(Is.Anything(), List.ContainsAll(new[] { "content" })));
        }
Пример #10
0
        public void generate_should_pass_xmls_to_parser_when_set_by_name()
        {
            var parser    = MockRepository.GenerateMock <IAssemblyXmlParser>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, parser, StubWriter, StubResourceManager, StubEventAggregator);

            StubXmlLoader.Stub(x => x.LoadFrom(null))
            .IgnoreArguments()
            .Return("content");

            generator.SetXmlFiles(new[] { "assembly.xml" });
            generator.Generate();

            parser.AssertWasCalled(x => x.CreateDocumentModel(null, null),
                                   x => x.Constraints(Is.Anything(), List.ContainsAll(new[] { "content" })));
        }
Пример #11
0
        public void generate_should_pass_assemblies_to_parser_when_set_by_name()
        {
            var parser = MockRepository.GenerateMock<IAssemblyXmlParser>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, parser, StubWriter, StubResourceManager);

            StubAssemblyLoader.Stub(x => x.LoadFrom(null))
                .IgnoreArguments()
                .Return(typeof(IAssemblyLoader).Assembly);

            generator.SetAssemblies(new[] { "assembly.dll" });
            generator.Generate();

            parser.AssertWasCalled(x => x.CreateDocumentModel(null, null),
                x => x.Constraints(List.ContainsAll(new[] { typeof(IAssemblyLoader).Assembly }), Is.Anything()));
        }
Пример #12
0
        public void should_pass_document_model_to_writer()
        {
            var writer        = MockRepository.GenerateMock <IBulkPageWriter>();
            var generator     = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, writer, StubResourceManager, StubEventAggregator);
            var documentModel = new List <Namespace>();

            StubParser.Stub(x => x.CreateDocumentModel(null, null))
            .IgnoreArguments()
            .Return(documentModel);

            generator.SetAssemblies(new [] { "unimportant_file_path" });
            generator.Generate();

            writer.AssertWasCalled(x => x.CreatePagesFromDirectory(null, null, null),
                                   x => x.Constraints(Is.Anything(), Is.Anything(), Is.Equal(documentModel)));
        }
Пример #13
0
        public void should_pass_document_model_to_writer()
        {
            var writer = MockRepository.GenerateMock<IBulkPageWriter>();
            var generator = new DocumentationGenerator(StubAssemblyLoader, StubXmlLoader, StubParser, writer, StubResourceManager, StubEventAggregator);
            var documentModel = new List<Namespace>();

            StubParser.Stub(x => x.CreateDocumentModel(null, null))
                .IgnoreArguments()
                .Return(documentModel);

            generator.SetAssemblies(new []{"unimportant_file_path"});
            generator.Generate();

            writer.AssertWasCalled(x => x.CreatePagesFromDirectory(null, null, null),
                                   x => x.Constraints(Is.Anything(), Is.Anything(), Is.Equal(documentModel)));
        }
Пример #14
0
        public byte[] Generate(long languageId, UserLanguages userLanguages)
        {
            var allMaterialsQuery = new AllMaterialsQuery(languageId, userLanguages, _forbiddenSectionsChecker);
            Dictionary <SectionId, List <Tuple <long, string, DateTime> > > tupleBySections =
                allMaterialsQuery.GetDataBySections();

            string keyFromContent = GetKeyFromContent(tupleBySections);
            string zipKey         = "AllMaterials" + "_" + keyFromContent + "_" + userLanguages.From.ShortName + "_"
                                    + userLanguages.To.ShortName + ".zip";

            byte[] result = _cache.Get(zipKey);
            if (result != null)
            {
                return(result);
            }

            foreach (var pairBySection in tupleBySections)
            {
                SectionId sectionId  = pairBySection.Key;
                string    folderName = allMaterialsQuery.GetHeader(sectionId);

                foreach (var tuple in pairBySection.Value)
                {
                    DocumentationGenerator generator = GetGenerator(allMaterialsQuery, sectionId, tuple.Item1,
                                                                    tuple.Item2);
                    if (generator == null)
                    {
                        //TODO: логировать и отсылать мне на почту
                        continue;
                    }

                    Stream fileContent = generator.Generate();
                    if (fileContent == null)
                    {
                        //TODO: логировать и отсылать мне на почту
                        continue;
                    }

                    string entryName = folderName + "/" + generator.FileName;
                    _zipCompressor.AddFileToArchive(entryName, fileContent);
                }
            }

            result = _zipCompressor.GetArchive();
            WriteToCache(zipKey, result);
            return(result);
        }
Пример #15
0
        public ActionResult Download(UserLanguages userLanguages, DocumentType type)
        {
            if (IsInvalid(userLanguages))
            {
                return(RedirectToAction("Index", RouteConfig.MAIN_CONTROLLER_NAME));
            }

            List <SourceWithTranslation> words = GetWords(userLanguages);

            string header = WebSettingsConfig.Instance.GetTemplateText(SectionId.PopularWord, PageId.Index,
                                                                       TemplateId.Header);

            var downloader = new PopularWordsDownloader(WebSettingsConfig.Instance.DomainWithProtocol,
                                                        CommonConstants.GetFontPath(Server))
            {
                Header = header
            };
            DocumentationGenerator documentGenerator = downloader.Download(type, header, words);

            return(File(documentGenerator.Generate(), documentGenerator.ContentType, documentGenerator.FileName));
        }
        public ActionResult Download(UserLanguages userLanguages, string group, DocumentType type)
        {
            if (UserLanguages.IsInvalid(userLanguages))
            {
                return(RedirectToAction("Index", RouteConfig.VISUAL_DICTIONARIES_CONTROLLER_NAME));
            }
            RepresentationForUser representationForUser = GetRepresentationForUser(userLanguages, group);

            if (representationForUser == null)
            {
                return(RedirectToActionPermanent("Index", RouteConfig.VISUAL_DICTIONARIES_CONTROLLER_NAME));
            }

            var downloader = new VisualDictionaryDownloader(WebSettingsConfig.Instance.DomainWithProtocol,
                                                            CommonConstants.GetFontPath(Server));
            string fileName = string.Format("Визуальный словарь на тему {0}",
                                            representationForUser.Title.ToLowerInvariant());
            DocumentationGenerator documentGenerator = downloader.Download(type, fileName, representationForUser);

            return(File(documentGenerator.Generate(), documentGenerator.ContentType, documentGenerator.FileName));
        }