public void Ctor_Times_Set()
        {
            DateTime now  = DateTime.UtcNow;
            NotePart part = new NotePart();

            Assert.True(part.TimeCreated >= now);
            Assert.True(part.TimeModified >= now);
        }
        public void Ctor_Id_Set()
        {
            NotePart part = new NotePart();

            Assert.Matches(
                "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-" +
                "[0-9a-fA-F]{12}$", part.Id);
        }
Beispiel #3
0
        public void GetDataPins_NoTag_Empty()
        {
            NotePart part = GetPart();

            part.Tag = null;

            Assert.Empty(part.GetDataPins());
        }
Beispiel #4
0
        private void SeedParts(IMongoDatabase db)
        {
            var collection = db.GetCollection <MongoPart>(MongoPart.COLLECTION);

            // categories
            CategoriesPart categoriesPart = new CategoriesPart
            {
                Id         = "part-001",
                ItemId     = "item-001",
                RoleId     = "categories",
                CreatorId  = "Odd",
                UserId     = "Odd",
                Categories = { "alpha", "beta" }
            };

            collection.InsertOne(CreateMongoPart(categoriesPart));

            // note
            NotePart notePart = new NotePart
            {
                Id        = "part-002",
                ItemId    = "item-001",
                RoleId    = "note",
                CreatorId = "Odd",
                UserId    = "Odd",
                Text      = "Some notes."
            };

            collection.InsertOne(CreateMongoPart(notePart));

            // layer: comments
            TokenTextLayerPart <CommentLayerFragment> commentLayerPart =
                new TokenTextLayerPart <CommentLayerFragment>
            {
                Id        = "part-003",
                ItemId    = "item-001",
                CreatorId = "Odd",
                UserId    = "Odd"
            };

            commentLayerPart.Fragments.AddRange(new []
            {
                new CommentLayerFragment
                {
                    Location = "1.2",
                    Text     = "The comment to 1.2"
                },
                new CommentLayerFragment
                {
                    Location = "1.3",
                    Text     = "The comment to 1.3"
                }
            });
            collection.InsertOne(CreateMongoPart(commentLayerPart));
        }
Beispiel #5
0
        protected virtual IDictionary <int, Part> ConvertStringToParts(string partsString)
        {
            if (string.IsNullOrEmpty(partsString))
            {
                return(new Dictionary <int, Part>());
            }

            var dict = ConvertToTrackFormat(partsString);

            return(dict.ToDictionary(k => k.Key,
                                     v =>
            {
                var part = new Part();

                var noteParts = v.Value;
                foreach (var notePart in noteParts)
                {
                    var notePartKey = notePart.Key;
                    var notePartValue = notePart.Value;

                    if (notePartKey == -1)
                    {
                        //Set all key
                        part.AllPartType = (PartType)notePartValue[0];
                    }
                    else
                    {
                        var notes = new List <NotePart>();
                        var notesStr = SpecialSplit(notePartValue);
                        foreach (var noteStr in notesStr)
                        {
                            var note = new NotePart
                            {
                                PartType = (PartType)noteStr[0]
                            };

                            if (noteStr.Any(char.IsDigit))
                            {
                                note.Length = int.Parse(noteStr.Substring(1, noteStr.Length - 1));
                            }

                            notes.Add(note);
                        }

                        //set partial key
                        part.Add(notePartKey, notes);
                    }
                }

                return part;
            }));
        }
Beispiel #6
0
        public void GetDataPins_Tag_1()
        {
            NotePart part = GetPart();

            List <DataPin> pins = part.GetDataPins().ToList();

            Assert.Single(pins);

            DataPin pin = pins[0];

            Assert.Equal(part.ItemId, pin.ItemId);
            Assert.Equal(part.Id, pin.PartId);
            Assert.Equal(part.RoleId, pin.RoleId);
            Assert.Equal("tag", pin.Name);
            Assert.Equal("some-tag", pin.Value);
        }
Beispiel #7
0
        public void Part_Is_Serializable()
        {
            NotePart part = GetPart();

            string   json  = TestHelper.SerializePart(part);
            NotePart part2 = TestHelper.DeserializePart <NotePart>(json);

            Assert.Equal(part.Id, part2.Id);
            Assert.Equal(part.TypeId, part2.TypeId);
            Assert.Equal(part.ItemId, part2.ItemId);
            Assert.Equal(part.RoleId, part2.RoleId);
            Assert.Equal(part.CreatorId, part2.CreatorId);
            Assert.Equal(part.UserId, part2.UserId);
            Assert.Equal(part.Tag, part2.Tag);
            Assert.Equal(part.Text, part2.Text);
        }
Beispiel #8
0
        public void Seed_NoOptions_NullTag()
        {
            NotePartSeeder seeder = new NotePartSeeder();

            seeder.SetSeedOptions(_seedOptions);

            IPart part = seeder.GetPart(_item, null, _factory);

            Assert.NotNull(part);

            NotePart np = part as NotePart;

            Assert.NotNull(np);

            TestHelper.AssertPartMetadata(np);
            Assert.Null(np.Tag);
            Assert.NotNull(np.Text);
        }
        public void CreateDataPin_Note_CreatedWithIds()
        {
            NotePart part = new NotePart
            {
                ItemId = Guid.NewGuid().ToString(),
                RoleId = "role",
                Tag    = "scholarly",
                Text   = "The note's text."
            };

            List <DataPin> pins = part.GetDataPins().ToList();

            Assert.Single(pins);
            DataPin pin = pins[0];

            Assert.Equal(part.ItemId, pin.ItemId);
            Assert.Equal(part.Id, pin.PartId);
            Assert.Equal(part.RoleId, pin.RoleId);
            Assert.Equal("tag", pin.Name);
            Assert.Equal("scholarly", pin.Value);
        }
Beispiel #10
0
        public void Seed_Options_Tag()
        {
            NotePartSeeder seeder = new NotePartSeeder();

            seeder.SetSeedOptions(_seedOptions);
            seeder.Configure(new NotePartSeederOptions
            {
                Tags = new[] { "alpha", "beta", "gamma" }
            });

            IPart part = seeder.GetPart(_item, null, _factory);

            Assert.NotNull(part);

            NotePart np = part as NotePart;

            Assert.NotNull(np);

            TestHelper.AssertPartMetadata(np);
            Assert.NotNull(np.Tag);
            Assert.NotNull(np.Text);
        }
Beispiel #11
0
        private void ReadNotePart(XElement itemElement, Item item)
        {
            XElement aside = itemElement.Element("aside");

            if (aside == null)
            {
                return;
            }

            StringBuilder sb = new StringBuilder();

            RenderAside(aside, sb);

            NotePart part = new NotePart
            {
                ItemId = item.Id,
                UserId = USERID,
                Tag    = aside.ReadOptionalAttribute("t", null),
                Text   = sb.ToString().Trim()
            };

            item.Parts.Add(part);
        }
        public void Ctor_TypeId_Set()
        {
            NotePart part = new NotePart();

            Assert.Equal("net.fusisoft.note", part.TypeId);
        }