GivenCreateSteamWorkshopItemTaskBuilder__WhenConfiguringWithNullVisibility__ShouldReturnTaskWithPrivateVisibility()
        {
            CreateSteamWorkshopItemTaskBuilder sut = new CreateSteamWorkshopItemTaskBuilder();

            CreateSteamWorkshopItemTask actual = (CreateSteamWorkshopItemTask)sut.With("Visibility", null).Build();

            Assert.AreEqual(WorkshopItemVisibility.Private, actual.ChangeSet.Visibility);
        }
        GivenCreateSteamWorkshopItemTaskBuilder_WhenConfiguringTaskWithAppIdOfTypeInt_ShouldReturnTaskWithAppIdOfUInt()
        {
            CreateSteamWorkshopItemTaskBuilder sut = new CreateSteamWorkshopItemTaskBuilder();

            const int appId = 32470;
            CreateSteamWorkshopItemTask actual = (CreateSteamWorkshopItemTask)sut.With("AppId", appId).Build();

            const uint expected = appId;

            Assert.AreEqual(expected, actual.AppId);
        }
        public void GivenCreateSteamWorkshopItemTaskBuilder__WhenConfiguring__ShouldReturnConfiguredTask()
        {
            CreateSteamWorkshopItemTaskBuilder sut = new CreateSteamWorkshopItemTaskBuilder();

            CreateSteamWorkshopItemTask actual = (CreateSteamWorkshopItemTask)sut
                                                 .With("AppId", AppId)
                                                 .With("Title", Title)
                                                 .With("DescriptionFilePath", DescriptionFilePath)
                                                 .With("ItemFolderPath", ItemFolderPath)
                                                 .With("Visibility", WorkshopItemVisibility.Public)
                                                 .With("Language", Language)
                                                 .With("Tags", Tags)
                                                 .Build();

            Assert.AreEqual(AppId, actual.AppId);
            Assert.AreEqual(Title, actual.ChangeSet.Title);
            Assert.AreEqual(DescriptionFilePath, actual.ChangeSet.DescriptionFilePath);
            Assert.AreEqual(ItemFolderPath, actual.ChangeSet.ItemFolderPath);
            Assert.AreEqual(WorkshopItemVisibility.Public, actual.ChangeSet.Visibility);
            Assert.AreEqual(Language, actual.ChangeSet.Language);
            Assert.AreEqual(Tags, actual.ChangeSet.Tags);
        }
        public void WhenCallingWithInvalidConfigOption__ShouldThrowInvalidOperationException()
        {
            CreateSteamWorkshopItemTaskBuilder sut = new CreateSteamWorkshopItemTaskBuilder();

            sut.With("InvalidOption", string.Empty);
        }