using System.Security.Claims; using Bit.Api.Controllers; using Bit.Api.Models.Request; using Bit.Core.Repositories; using Bit.Core.Services; using Bit.Test.Common.AutoFixture; using Bit.Test.Common.AutoFixture.Attributes; using Core.Models.Data; using NSubstitute; using Xunit; namespace Bit.Api.Test.Controllers; [ControllerCustomize(typeof(CiphersController))] [SutProviderCustomize] public class CiphersControllerTests { [Theory, BitAutoData] public async Task PutPartialShouldReturnCipherWithGivenFolderAndFavoriteValues(Guid userId, Guid folderId, SutProvider sutProvider) { var isFavorite = true; var cipherId = Guid.NewGuid(); sutProvider.GetDependency() .GetProperUserId(Arg.Any()) .Returns(userId); var cipherDetails = new CipherDetails { Favorite = isFavorite, FolderId = folderId, Type = Core.Enums.CipherType.SecureNote, Data = "{}" }; sutProvider.GetDependency() .GetByIdAsync(cipherId, userId) .Returns(Task.FromResult(cipherDetails)); var result = await sutProvider.Sut.PutPartial(cipherId.ToString(), new CipherPartialRequestModel { Favorite = isFavorite, FolderId = folderId.ToString() }); Assert.Equal(folderId.ToString(), result.FolderId); Assert.Equal(isFavorite, result.Favorite); } }