示例#1
0
        public void Add_repo_file()
        {
            var syncTable = new List<SyncTableEntry>();
            var sut = new LocalSyncTable(REPO_PATH, syncTable);

            sut.AddOrUpdateEntry(new RepoFile{Id="myid", RelativeFileName="myfn", User="******", TimeStamp=new DateTime(2000,5,12)});

            Equalidator.AreEqual(syncTable, new List<SyncTableEntry> { new SyncTableEntry{ Id = "myid", RelativeFilename = "myfn", User = "******", TimeStamp = new DateTime(2000, 5, 12) } });
        }
示例#2
0
        public void Delete_entry()
        {
            var sut = new LocalSyncTable(REPO_PATH, new List<SyncTableEntry>
                {
                    new SyncTableEntry { RelativeFilename = "myfn", Id = "myid" },
                    new SyncTableEntry { RelativeFilename = "myfn2", Id = "myid2" }
                });

            var rf = new RepoFile {RelativeFileName = "myfn2"};
            var result = sut.DeleteEntry(rf);

            Equalidator.AreEqual(result, rf);
        }
示例#3
0
        public void Delete_entries_while_collecting()
        {
            var syncTable = new List<SyncTableEntry>
                {
                    new SyncTableEntry {RelativeFilename = "myfn", Id = "myid"},
                    new SyncTableEntry {RelativeFilename = "myfn2", Id = "myid2"}
                };
            var sut = new LocalSyncTable(REPO_PATH, syncTable);

            sut.CollectRepoFiles(_ => sut.DeleteEntry(_));

            Assert.AreEqual(0, syncTable.Count);
        }
示例#4
0
        public void Collect_repo_files()
        {
            var sut = new LocalSyncTable(null, new List<SyncTableEntry>
                {
                    new SyncTableEntry { RelativeFilename = "myfn", Id = "myid" },
                    new SyncTableEntry { RelativeFilename = "myfn2", Id = "myid2" }
                });

            var result = new List<RepoFile>();
            sut.CollectRepoFiles(result.Add);

            Equalidator.AreEqual(result, new List<RepoFile>
                {
                    new RepoFile{RelativeFileName = "myfn", Id = "myid"},
                    new RepoFile{RelativeFileName = "myfn2", Id = "myid2"}
                });
        }
示例#5
0
        public void Filter_unchanged_file_by_timestamp()
        {
            var sut = new LocalSyncTable(null, new List<SyncTableEntry> { new SyncTableEntry { RelativeFilename = "myfn", TimeStamp = new DateTime(2000, 5, 12) } });

            RepoFile result = null;
            sut.FilterUnchangedByTimeStamp(new RepoFile { RelativeFileName = "myfn", TimeStamp = new DateTime(2000, 5, 12) }, _ => result = _);

            Assert.IsNull(result);
        }
示例#6
0
        public void Filter_unchanged_file_by_id()
        {
            var sut = new LocalSyncTable(null, new List<SyncTableEntry> { new SyncTableEntry { RelativeFilename = "myfn", Id="myid" } });

            RepoFile result = null;
            sut.FilterUnchangedById(new RepoFile { RelativeFileName = "myfn", Id = "myid"}, _ => result = _);

            Assert.IsNull(result);
        }
示例#7
0
        public void Sync_table_is_persisted_after_delete()
        {
            Directory.CreateDirectory(REPO_PATH);
            File.Delete(REPO_PATH + @"\.sync");

            var sut = new LocalSyncTable(REPO_PATH, new List<SyncTableEntry>
                {
                    new SyncTableEntry { RelativeFilename = "myfn", Id = "myid", User = "******", TimeStamp = new DateTime(2000,5,12)},
                    new SyncTableEntry { RelativeFilename = "myfn2", Id = "myid2" }
                });

            var rf = new RepoFile { RelativeFileName = "myfn2" };
            var result = sut.DeleteEntry(rf);

            Assert.AreEqual("myfn\tmyid\tmyuser\t2000-05-12T00:00:00\r\n", File.ReadAllText(REPO_PATH + @"\.sync"));
        }
示例#8
0
        public void Pass_on_new_file_by_timestamp()
        {
            var sut = new LocalSyncTable(null, new List<SyncTableEntry> { new SyncTableEntry { RelativeFilename = "myfn", TimeStamp = new DateTime(2000, 5, 12) } });

            var rf = new RepoFile { RelativeFileName = "myfn2", TimeStamp = new DateTime(2000, 5, 12) };
            RepoFile result = null;
            sut.FilterUnchangedByTimeStamp(rf, _ => result = _);

            Equalidator.AreEqual(result, rf);
        }
示例#9
0
        public void Save_synctable_after_each_update()
        {
            Directory.CreateDirectory(REPO_PATH);
            File.Delete(REPO_PATH + @"\.sync");

            var sut = new LocalSyncTable(REPO_PATH);

            sut.AddOrUpdateEntry(new RepoFile { Id = "myid", RelativeFileName = "myfn", User = "******", TimeStamp = new DateTime(2000, 5, 12) });

            Assert.AreEqual("myfn\tmyid\tmyuser\t2000-05-12T00:00:00\r\n", File.ReadAllText(REPO_PATH + @"\.sync"));
        }
示例#10
0
        public void Pass_on_changed_file_by_id()
        {
            var sut = new LocalSyncTable(null, new List<SyncTableEntry> { new SyncTableEntry { RelativeFilename = "myfn", Id="myid" } });

            var rf = new RepoFile { RelativeFileName = "myfn", Id="my new id" };
            RepoFile result = null;
            sut.FilterUnchangedById(rf, _ => result = _);

            Equalidator.AreEqual(result, rf);
        }
示例#11
0
        public void Load_sync_table_on_creation()
        {
            Directory.CreateDirectory(REPO_PATH);
            File.WriteAllText(REPO_PATH + @"\.sync", "myfn\tmyid\tmyuser\t2000-05-12T00:00:00\r\n");

            var sut = new LocalSyncTable(REPO_PATH);

            sut.AddOrUpdateEntry(new RepoFile { Id = "myid2", RelativeFileName = "myfn2", User = "******", TimeStamp = new DateTime(1999, 12, 31) });

            Assert.AreEqual("myfn\tmyid\tmyuser\t2000-05-12T00:00:00\r\nmyfn2\tmyid2\tmyuser2\t1999-12-31T00:00:00\r\n", File.ReadAllText(REPO_PATH + @"\.sync"));
        }
示例#12
0
        public void Get_timestamp_for_nonexistent_file()
        {
            var syncTable = new List<SyncTableEntry>();
            var sut = new LocalSyncTable(REPO_PATH, syncTable);

            var result = sut.GetTimeStamp(new RepoFile { RelativeFileName = "myfn", Id = "new id", User = "******", TimeStamp = new DateTime(2000,5,12)});

            Assert.IsNull(result);
        }
示例#13
0
        public void Get_timestamp()
        {
            var syncTable = new List<SyncTableEntry> { new SyncTableEntry {RelativeFilename = "myfn", Id = "myid", TimeStamp = new DateTime(2000, 5, 12), User = "******"} };
            var sut = new LocalSyncTable(REPO_PATH, syncTable);

            var rf = new RepoFile {RelativeFileName = "myfn", Id = "new id", User = "******"};
            var result = sut.GetTimeStamp(rf);

            Assert.AreNotSame(result, rf);
            Equalidator.AreEqual(result, new RepoFile { RelativeFileName = "myfn", Id = "new id", User = "******", TimeStamp = new DateTime(2000,5,12)});
        }
示例#14
0
        public void Filter_with_timestamp_resolution_of_seconds()
        {
            var sut = new LocalSyncTable(null, new List<SyncTableEntry> { new SyncTableEntry { RelativeFilename = "myfn", TimeStamp = new DateTime(2000, 5, 12, 10, 11, 12, 123) } });

            RepoFile result = null;
            sut.FilterUnchangedByTimeStamp(new RepoFile { RelativeFileName = "myfn", TimeStamp = new DateTime(2000, 5, 12, 10, 11, 12, 456) }, _ => result = _);

            Assert.IsNull(result);
        }