public void GetPlanContainerByAny_Existing_Plan_Container_Succeeds()
        {
            Guid          containerUId = Guid.NewGuid();
            PlanContainer container    = new PlanContainer()
            {
                UId  = containerUId,
                Name = _containerPrefix + containerUId
            };
            DynamoDbDal dal = new DynamoDbDal
            {
                ContainerTable = _containerTable
            };

            // Act
            dal.UpsertPlanContainer(container);
            var retContainers = dal.GetPlanContainerByAny(containerUId, null, null, null, null, null, null);

            // Assert
            Assert.IsTrue(retContainers.Count > 0);
            foreach (PlanContainer c in retContainers)
            {
                Assert.AreEqual(c.UId, container.UId);
                Assert.AreEqual(c.Name, container.Name);
            }
        }
        public void GetPlanContainerByAny_No_Filter_Condition_Throws_Exception()
        {
            // Arrange
            DynamoDbDal dal = new DynamoDbDal
            {
                ContainerTable = _containerTable
            };

            // Act
            Exception ex = Assert.Throws <Exception>(() => dal.GetPlanContainerByAny(null, null, null, null, null, null, null));

            // Assert
            StringAssert.AreEqualIgnoringCase("At least one filter condition must be specified.", ex.Message);
        }
        public void GetPlanContainerByAny_Non_Existent_Plan_Container_Throws_Exception()
        {
            // Arrange
            Guid containerUId = Guid.NewGuid();

            DynamoDbDal dal = new DynamoDbDal
            {
                ContainerTable = _containerTable
            };

            // Act
            Exception ex = Assert.Throws <Exception>(() => dal.GetPlanContainerByAny(containerUId, null, null, null, null, null, null));

            // Assert
            StringAssert.AreEqualIgnoringCase("Plan container cannot be found.", ex.Message);
        }
        public void GetPlanContainerByAny_Null_Plan_Container_Table_Throws_Exception()
        {
            // Arrange
            Guid containerUId = Guid.NewGuid();

            DynamoDbDal dal = new DynamoDbDal
            {
                ContainerTable = ""
            };

            // Act
            Exception ex = Assert.Throws <Exception>(() => dal.GetPlanContainerByAny(containerUId, null, null, null, null, null, null));

            // Assert
            StringAssert.AreEqualIgnoringCase("Plan container table name must be specified.", ex.Message);
        }
        public void GetPlanContainerByAny_Non_Existent_Table_Throws_Exception()
        {
            // Arrange
            Guid containerUId = Guid.NewGuid();

            DynamoDbDal dal = new DynamoDbDal
            {
                ContainerTable = "XXXXXX"
            };

            // Act
            // Assert
            ResourceNotFoundException ex = Assert.Throws <ResourceNotFoundException>(() => dal.GetPlanContainerByAny(containerUId, null, null, null, null, null, null));

            StringAssert.Contains("Requested resource not found: Table", ex.Message);
        }