public async Task CreateVersion_GivenNullCurrentVersion_AssignsDefaultValues() { //Arrange TestVersionItem newVersion = new TestVersionItem(); ICosmosRepository cosmosRepository = CreateCosmosRepository(); VersionRepository <TestVersionItem> versionRepository = new VersionRepository <TestVersionItem>(cosmosRepository); //Act newVersion = await versionRepository.CreateVersion(newVersion); //Assert newVersion .Version .Should() .Be(1); newVersion .PublishStatus .Should() .Be(PublishStatus.Draft); newVersion .Date .Date .Should() .Be(DateTime.Now.Date.ToLocalTime()); }
public async Task CreateVersion_GivenACurrentVersionWithVersion1_SetsNewVersionToThreeAndStatusToUpdated() { //Arrange TestVersionItem newVersion = new TestVersionItem { SpecificationId = specificationId, PublishStatus = PublishStatus.Approved }; TestVersionItem currentVersion = new TestVersionItem { SpecificationId = specificationId, Version = 2, PublishStatus = PublishStatus.Approved }; dynamic[] maxNumber = new dynamic[] { 2 }; ICosmosRepository cosmosRepository = CreateCosmosRepository(); cosmosRepository .DynamicQuery <dynamic>(Arg.Any <SqlQuerySpec>()) .Returns(maxNumber.AsQueryable()); VersionRepository <TestVersionItem> versionRepository = new VersionRepository <TestVersionItem>(cosmosRepository); //Act newVersion = await versionRepository.CreateVersion(newVersion, currentVersion); //Assert newVersion .Version .Should() .Be(3); newVersion .PublishStatus .Should() .Be(PublishStatus.Updated); newVersion .Date .Date .Should() .Be(DateTime.Now.Date.ToLocalTime()); }
public async Task CreateVersion_GivenACurrentVersionIsUpdatedAndGetsApproved_CreatesVersion() { //Arrange TestVersionItem newVersion = new TestVersionItem { SpecificationId = specificationId, PublishStatus = PublishStatus.Approved }; TestVersionItem currentVersion = new TestVersionItem { SpecificationId = specificationId, PublishStatus = PublishStatus.Updated, Version = 1 }; IQueryable <TestVersionItem> versions = Enumerable.Empty <TestVersionItem>().AsQueryable <TestVersionItem>(); ICosmosRepository cosmosRepository = CreateCosmosRepository(); cosmosRepository .Query <TestVersionItem>() .Returns(versions); VersionRepository <TestVersionItem> versionRepository = new VersionRepository <TestVersionItem>(cosmosRepository); //Act newVersion = await versionRepository.CreateVersion(newVersion, currentVersion); //Assert newVersion .Version .Should() .Be(1); newVersion .PublishStatus .Should() .Be(PublishStatus.Approved); newVersion .Date .Date .Should() .Be(DateTime.Now.Date.ToLocalTime()); }
public async Task CreateVersion_GivenACurrentVersionButUnableToFindExistingVersions_SetsVersionToOne() { //Arrange TestVersionItem newVersion = new TestVersionItem { SpecificationId = specificationId }; TestVersionItem currentVersion = new TestVersionItem { SpecificationId = specificationId, Version = 1 }; IQueryable <TestVersionItem> versions = Enumerable.Empty <TestVersionItem>().AsQueryable <TestVersionItem>(); ICosmosRepository cosmosRepository = CreateCosmosRepository(); cosmosRepository .Query <TestVersionItem>() .Returns(versions); VersionRepository <TestVersionItem> versionRepository = new VersionRepository <TestVersionItem>(cosmosRepository); //Act newVersion = await versionRepository.CreateVersion(newVersion, currentVersion); //Assert newVersion .Version .Should() .Be(1); newVersion .PublishStatus .Should() .Be(PublishStatus.Draft); newVersion .Date .Date .Should() .Be(DateTime.Now.Date.ToLocalTime()); }