public void ShouldProduceDesignDocumentsWithIdFromEmptyDirectories() { var directory = Mock.Of<IDirectory>( d => d.EnumerateDirectories() == new[] { Mock.Of<IDirectory>( d1 => d1.EnumerateFiles() == EmptyFileArray && d1.EnumerateDirectories() == EmptyDirectoryArray && d1.Name == "first_doc" ), Mock.Of<IDirectory>( d1 => d1.EnumerateFiles() == EmptyFileArray && d1.EnumerateDirectories() == EmptyDirectoryArray && d1.Name == "second_doc" ) } ); var generatedDocs = new DesignDocumentAssembler(directory).Assemble(); Assert.Equal(2, generatedDocs.Count); var keys = generatedDocs.Keys.ToList(); var designDocumentA = generatedDocs[keys[0]]; var designDocumentB = generatedDocs[keys[1]]; Assert.Equal("_design/first_doc", designDocumentA.Id); Assert.Null(designDocumentA.Revision); Assert.Equal( JsonValue.Parse(@"{ ""_id"": ""_design/first_doc"" }"), designDocumentA.RawJsonObject, new JsonObjectComparier()); Assert.Equal("_design/second_doc", designDocumentB.Id); Assert.Null(designDocumentB.Revision); Assert.Equal( JsonValue.Parse(@"{ ""_id"": ""_design/second_doc"" }"), designDocumentB.RawJsonObject, new JsonObjectComparier()); }
public void ShouldProduceDesignDocumentsWithIdFromSpecialFile() { var directory = Mock.Of<IDirectory>( d => d.EnumerateDirectories() == new[] { Mock.Of<IDirectory>( d1 => d1.EnumerateFiles() == new[] { File("_id.with-some-strange-extention", "some special ID\n\r" )} && d1.EnumerateDirectories() == EmptyDirectoryArray && d1.Name == "strange_name" ) } ); var generatedDocs = new DesignDocumentAssembler(directory).Assemble(); Assert.Equal(1, generatedDocs.Count); var generatedDoc = generatedDocs.Values.First(); Assert.Equal("_design/some special ID", generatedDoc.Id); Assert.Null(generatedDoc.Revision); Assert.Equal( JsonValue.Parse(@"{ ""_id"": ""_design/some special ID"" }"), generatedDoc.RawJsonObject, new JsonObjectComparier()); }
public void ShouldMapTextFilesInSubDirectoriesToSubobjectProperties() { var directory = Mock.Of<IDirectory>( d => d.EnumerateDirectories() == new[] { Mock.Of<IDirectory>( d1 => d1.EnumerateFiles() == EmptyFileArray && d1.Name == "doc1" && d1.EnumerateDirectories() == new [] { Mock.Of<IDirectory>( d2 => d2.EnumerateFiles() == EmptyFileArray && d2.Name == "interObj1" && d2.EnumerateDirectories() == new [] { Mock.Of<IDirectory>( d3 => d3.EnumerateFiles() == EmptyFileArray && d3.Name == "interObj2" && d3.EnumerateDirectories() == new [] { Mock.Of<IDirectory>( d4 => d4.Name == "interObj3" && d4.EnumerateFiles() == new[] { File("prop1.txt", "prop1 value"), File("prop2.js", "prop2 value") } ) } ) } ) } ) } ); var generatedDocs = new DesignDocumentAssembler(directory).Assemble(); var generatedDoc = generatedDocs.Values.First(); Assert.Equal(1, generatedDocs.Count); Assert.Equal("_design/doc1", generatedDoc.Id); Assert.Null(generatedDoc.Revision); Assert.Equal( JsonObject.Parse(@"{ ""_id"": ""_design/doc1"", ""interObj1"": { ""interObj2"": { ""interObj3"": { ""prop1"": ""prop1 value"", ""prop2"": ""prop2 value"" } } } }"), generatedDoc.RawJsonObject, new JsonObjectComparier()); }
public void ShouldMapTextFilesInDirectoryToDocumentProperties() { var directory = Mock.Of<IDirectory>( d => d.EnumerateDirectories() == new[] { Mock.Of<IDirectory>( d1 => d1.EnumerateFiles() == new[] { File("prop1.txt", "prop1 value"), File("prop2.js", "prop2 value") } && d1.EnumerateDirectories() == EmptyDirectoryArray && d1.Name == "doc1" ) } ); var generatedDocs = new DesignDocumentAssembler(directory).Assemble(); Assert.Equal(1, generatedDocs.Count); var generatedDoc = generatedDocs.Values.First(); Assert.Equal("_design/doc1", generatedDoc.Id); Assert.Null(generatedDoc.Revision); Assert.Equal( JsonValue.Parse(@"{ ""_id"": ""_design/doc1"", ""prop1"": ""prop1 value"", ""prop2"": ""prop2 value"" }"), generatedDoc.RawJsonObject, new JsonObjectComparier()); }