public void GivenTaskBuilder__WhenConfiguringWithNullVisibility__ShouldReturnTaskWithPrivateVisibility()
        {
            UpdateSteamWorkshopItemTaskBuilder sut = new UpdateSteamWorkshopItemTaskBuilder();

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

            Assert.AreEqual(WorkshopItemVisibility.Private, actual.ChangeSet.Visibility);
        }
        public void GivenTaskBuilder_WhenConfiguringTaskWithItemIdOfTypeInt_ShouldReturnTaskWithItemIdOfULong()
        {
            UpdateSteamWorkshopItemTaskBuilder sut = new UpdateSteamWorkshopItemTaskBuilder();

            const int itemId = 123456;
            UpdateSteamWorkshopItemTask actual = (UpdateSteamWorkshopItemTask)sut.With("ItemId", itemId).Build();

            const ulong expected = itemId;

            Assert.AreEqual(expected, actual.ItemId);
        }
        public void GivenTaskBuilder_WhenConfiguringTaskWithAppIdOfTypeInt_ShouldReturnTaskWithAppIdOfUInt()
        {
            UpdateSteamWorkshopItemTaskBuilder sut = new UpdateSteamWorkshopItemTaskBuilder();

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

            const uint expected = appId;

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

            UpdateSteamWorkshopItemTask actual = (UpdateSteamWorkshopItemTask)sut.With("AppId", AppId)
                                                 .With("ItemId", ItemId)
                                                 .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(ItemId, actual.ItemId);
            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()
        {
            UpdateSteamWorkshopItemTaskBuilder sut = new UpdateSteamWorkshopItemTaskBuilder();

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