public void DeleteEntryThreadSafety()
        {
            var binaryFileManager = new BinaryFileManager();

            var listOfTasks = new List <Task>();

            var entries = binaryFileManager.GetAll();

            var listOfObjects = new List <PhoneEntryModel>
            {
                new PhoneEntryModel
                {
                    Id          = 2,
                    FirstName   = "Orges",
                    LastName    = "Kreka",
                    PhoneNumber = "+355682024896",
                    EntryType   = PhoneEntryType.WORK
                }
            };

            foreach (var model in listOfObjects)
            {
                var addTask = new Task <bool>(() => binaryFileManager.Delete(model));
                listOfTasks.Add(addTask);
            }

            listOfTasks.ForEach(x => x.Start());
            Task.WaitAll(listOfTasks.ToArray());

            var tmp = binaryFileManager.GetAll();

            Assert.IsTrue(tmp.Count == (entries.Count - listOfObjects.Count));
        }
        public void IterateListByLastName()
        {
            bool orderByFirstName        = false;
            BinaryFileManager binaryFile = new BinaryFileManager();
            var phoneEntries             = binaryFile.GetAll();
            var orderList = new List <PhoneEntryModel>();

            if (orderByFirstName)
            {
                orderList = phoneEntries.OrderBy(p => p.LastName).ToList();
            }
            Assert.That(orderList, Is.Ordered.By("LastName"));
        }
        public void EditEntryThreadSafety()
        {
            var binaryFileManager = new BinaryFileManager();

            var listOfTasks = new List <Task>();

            var entries = binaryFileManager.GetAll();

            var listOfObjects = new List <PhoneEntryModel>
            {
                new PhoneEntryModel
                {
                    Id          = 3,
                    FirstName   = "Petrit",
                    LastName    = "Lame",
                    PhoneNumber = "+355682624896",
                    EntryType   = PhoneEntryType.CELLPHONE
                }
            };

            foreach (var model in listOfObjects)
            {
                var addTask = new Task <bool>(() => binaryFileManager.Edit(model));
                listOfTasks.Add(addTask);
            }

            listOfTasks.ForEach(x => x.Start());
            Task.WaitAll(listOfTasks.ToArray());

            var tmp = binaryFileManager.GetAll();

            Assert.IsTrue(tmp.Count == entries.Count);

            for (int i = 0; i < tmp.Count; i++)
            {
                Assert.IsTrue(tmp[i].FirstName != entries[i].FirstName);
                break;
            }
        }
        public void DeleteEntryFromPhoneBook()
        {
            PhoneEntryModel model = new PhoneEntryModel
            {
                Id          = 1,
                FirstName   = "Kristi",
                LastName    = "Mone",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            var binaryFileManager = new BinaryFileManager();
            var result            = binaryFileManager.Delete(model);

            Assert.IsTrue(result && !binaryFileManager.GetAll().Any(x => x.Id == model.Id));
        }
        public void EditEntryToPhoneBook()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel
            {
                Id          = 3,
                FirstName   = "Endi",
                LastName    = "Koci",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            var result = binaryFile.Edit(model);

            Assert.IsTrue(result == true && binaryFile.GetAll().Any(x => x.FirstName.Equals("Endi") && x.LastName.Equals("Koci")));
        }
        public void AddEntryToPhoneBook()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel
            {
                Id          = 4,
                FirstName   = "Mario",
                LastName    = "Coku",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            binaryFile.Add(model);

            Assert.IsTrue(binaryFile.GetAll().Any(x => x.FirstName.Equals("Mario") && x.LastName.Equals("Coku")));
        }
        public void DeleteEntryDifferentId_FromFile()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            var             phoneEntries = binaryFile.GetAll();
            PhoneEntryModel model        = new PhoneEntryModel
            {
                Id          = 7,
                FirstName   = "Orges",
                LastName    = "Kreka",
                PhoneNumber = "+355682323896",
                EntryType   = PhoneEntryType.WORK
            };

            if (!phoneEntries.Any(x => x.Id == model.Id))
            {
                Assert.IsFalse(false);
            }
        }
        public void AddEntryToPhoneBookReturnFalse()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel
            {
                Id          = 4,
                FirstName   = "Mario",
                LastName    = "Coku",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            var phoneEntries = binaryFile.GetAll();

            if (phoneEntries.Any(x => x.Id == model.Id))
            {
                Assert.IsFalse(false);
            }
        }
        public void AddEntriesAndCheckIfListContainsThem()
        {
            var entry1 = new PhoneEntryModel
            {
                Id          = 1,
                FirstName   = "Kristi",
                LastName    = "Mone",
                PhoneNumber = "+355682456321",
                EntryType   = PhoneEntryType.CELLPHONE
            };

            var entry2 = new PhoneEntryModel
            {
                Id          = 2,
                FirstName   = "Orges",
                LastName    = "Kreka",
                PhoneNumber = "+355696054698",
                EntryType   = PhoneEntryType.WORK
            };

            var entry3 = new PhoneEntryModel
            {
                Id          = 3,
                FirstName   = "Ermal",
                LastName    = "Arapi",
                PhoneNumber = "+35542235205",
                EntryType   = PhoneEntryType.HOME
            };

            BinaryFileManager binaryFile = new BinaryFileManager();

            binaryFile.Add(entry1);
            binaryFile.Add(entry2);
            binaryFile.Add(entry3);

            var result = binaryFile.GetAll();

            Assert.IsTrue(result[0].Equals(entry1) && result[1].Equals(entry2) && result[2].Equals(entry3));
        }