public void ThreadSafetyCheckOnGetOrAdd() { InMemoryBudgetBucketRepository subject = Arrange(); var threads = new List <Thread>(); var concurrency = 50; var options = new ParallelOptions { MaxDegreeOfParallelism = 20 }; ParallelLoopResult result = Parallel.For( 1, concurrency, options, index => { var thread = new Thread(ThreadSafetyCheckOneThread); threads.Add(thread); Console.WriteLine("Starting thread " + index); thread.Start(subject); }); while (!result.IsCompleted) { Thread.Sleep(10); } foreach (Thread thread in threads) { thread.Join(); Console.WriteLine("Thread finished "); } Assert.IsFalse(this.concurrencyFail); }
private InMemoryBudgetBucketRepository Arrange() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.Initialise(CreateBudgetBucketDtoTestData()); return(subject); }
public void CreateNewFixedBudgetProjectShouldThrowGivenEmptyDescription() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.CreateNewFixedBudgetProject("Foo", string.Empty, 1000); Assert.Fail(); }
public void InitialiseShouldPopulate9Buckets() { InMemoryBudgetBucketRepository subject = Arrange(); int expected = CreateBudgetBucketDtoTestData().Count() + 2; // Surplus and PayCreditCard are added automatically. Assert.AreEqual(expected, subject.Buckets.Count()); }
public void CreateNewFixedBudgetProjectShouldThrowGivenNullCode() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.CreateNewFixedBudgetProject(null, "foo bar", 1000); Assert.Fail(); }
public void CreateNewFixedBudgetProjectShouldThrowGivenAmountLessThanZero() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.CreateNewFixedBudgetProject("Foo", "Foo bvar", 0); Assert.Fail(); }
public void CreateNewFixedBudgetProjectShouldReturnNewBucket() { InMemoryBudgetBucketRepository subject = CreateSubject(); FixedBudgetProjectBucket result = subject.CreateNewFixedBudgetProject("Foo", "Foo var", 1000); Assert.IsNotNull(result); Assert.IsTrue(subject.IsValidCode(result.Code)); }
public void GetByOrCreateNewShouldThrowGivenNullFactory() { InMemoryBudgetBucketRepository subject = Arrange(); subject.GetOrCreateNew("CODE", null); Assert.Fail(); }
public void CreateNewFixedBudgetProjectShouldThrowGivenCodeAlreadyExists() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.GetOrCreateNew(FixedBudgetProjectBucket.CreateCode("Foo"), () => new FixedBudgetProjectBucket("Foo", "Foo bajh", 2000)); subject.CreateNewFixedBudgetProject("Foo", "Foo var", 1000); Assert.Fail(); }
public void IsValidCodeShouldThrowGivenNullCode() { InMemoryBudgetBucketRepository subject = Arrange(); subject.IsValidCode(null); Assert.Fail(); }
public void InitialiseShouldThrowGivenNullBucketsArgument() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.Initialise(null); Assert.Fail(); }
public void GetOrAddShouldAddWhenItemDoesntExist() { InMemoryBudgetBucketRepository subject = Arrange(); subject.GetOrCreateNew("Foo", () => new IncomeBudgetBucket("Foo", "Bar")); Assert.IsTrue(subject.IsValidCode("Foo")); }
public void GetByOrCreateNewShouldThrowGivenNullCode() { InMemoryBudgetBucketRepository subject = Arrange(); subject.GetOrCreateNew(null, () => new PayCreditCardBucket()); Assert.Fail(); }
public void AfterInitialiseSurplusBucketShouldExist() { InMemoryBudgetBucketRepository subject = CreateSubject(); subject.Initialise(new List <BudgetBucketDto>()); Assert.IsTrue(subject.IsValidCode(SurplusBucket.SurplusCode)); Assert.IsInstanceOfType(subject.GetByCode(SurplusBucket.SurplusCode), typeof(SurplusBucket)); }
public void InitialiseShouldPopulateKnownBuckets() { InMemoryBudgetBucketRepository subject = Arrange(); Assert.IsTrue(subject.IsValidCode(TestDataConstants.CarMtcBucketCode)); Assert.IsTrue(subject.IsValidCode(TestDataConstants.HairBucketCode)); Assert.IsTrue(subject.IsValidCode(TestDataConstants.FoodBucketCode)); Assert.IsTrue(subject.IsValidCode(TestDataConstants.IncomeBucketCode)); }
private XamlOnDiskBudgetRepository Arrange(IBudgetBucketRepository bucketRepo = null) { if (bucketRepo == null) { bucketRepo = new InMemoryBudgetBucketRepository(new Mapper_BudgetBucketDto_BudgetBucket(new BudgetBucketFactory())); } return(new XamlOnDiskBudgetRepository( bucketRepo, new Mapper_BudgetCollectionDto_BudgetCollection( bucketRepo, new Mapper_BudgetBucketDto_BudgetBucket(new BudgetBucketFactory()), new Mapper_BudgetModelDto_BudgetModel(bucketRepo)), this.mockFileSelector.Object)); }
public void GetOrAddShouldNotAddWhenItemDoesExist() { InMemoryBudgetBucketRepository subject = Arrange(); int count = subject.Buckets.Count(); subject.GetOrCreateNew( TestDataConstants.HairBucketCode, () => { Assert.Fail(); return(new IncomeBudgetBucket(TestDataConstants.HairBucketCode, "Bar")); }); Assert.AreEqual(count, subject.Buckets.Count()); }
public void NewRepositoryShouldNotContainDefaultBuckets() { InMemoryBudgetBucketRepository subject = CreateSubject(); Assert.IsNull(subject.GetByCode(SurplusBucket.SurplusCode)); }
public void IsValidCodeShouldReturnFalseWhenRepositoryIsEmpty() { InMemoryBudgetBucketRepository subject = CreateSubject(); Assert.IsFalse(subject.IsValidCode(SurplusBucket.SurplusCode)); }
public void NewRepositoryShouldBeEmpty() { InMemoryBudgetBucketRepository subject = CreateSubject(); Assert.IsFalse(subject.Buckets.Any()); }