Skip to content

Commit aea7df4

Browse files
committed
fix: wants vs has
1 parent 6af9094 commit aea7df4

5 files changed

Lines changed: 344 additions & 64 deletions

File tree

apps/fabric-example/ios/FabricExampleTests/IOSAudioRecorderTests.mm

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,36 @@ void setRecorderState(RecorderState state)
241241
{
242242
return filePath_;
243243
}
244+
245+
bool fileOutputEnabledIntent() const
246+
{
247+
return fileOutputEnabled_.load(std::memory_order_acquire);
248+
}
249+
250+
bool fileOutputConfigured() const
251+
{
252+
return fileOutputConfigured_.load(std::memory_order_acquire);
253+
}
254+
255+
bool callbackOutputEnabledIntent() const
256+
{
257+
return callbackOutputEnabled_.load(std::memory_order_acquire);
258+
}
259+
260+
bool callbackOutputConfigured() const
261+
{
262+
return callbackOutputConfigured_.load(std::memory_order_acquire);
263+
}
264+
265+
bool connectionEnabledIntent() const
266+
{
267+
return isConnected_.load(std::memory_order_acquire);
268+
}
269+
270+
bool connectionConfigured() const
271+
{
272+
return connectedConfigured_.load(std::memory_order_acquire);
273+
}
244274
};
245275

246276
@interface IOSAudioRecorderTests : XCTestCase {
@@ -433,6 +463,43 @@ - (void)testStartPreparesMonoCallbackAgainstResolvedMultichannelInputFormat
433463
XCTAssertTrue(self.nativeRecorder.lastInputArmed);
434464
}
435465

466+
- (void)testEnableFileOutputWhileIdleTracksIntentWithoutLiveWriter
467+
{
468+
auto enableResult = _recorder->enableFileOutput([self validFileProperties]);
469+
470+
XCTAssertTrue(enableResult.is_ok());
471+
XCTAssertTrue(_recorder->fileOutputEnabledIntent());
472+
XCTAssertFalse(_recorder->fileOutputConfigured());
473+
XCTAssertFalse(_recorder->usesFileOutput());
474+
XCTAssertEqual(_recorder->getCurrentDuration(), 0.0);
475+
476+
_recorder->clearOnErrorCallback();
477+
}
478+
479+
- (void)testSetOnAudioReadyWhileIdleTracksIntentWithoutLiveCallback
480+
{
481+
auto callbackResult = _recorder->setOnAudioReadyCallback(48000, 256, 1, 99);
482+
483+
XCTAssertTrue(callbackResult.is_ok());
484+
XCTAssertTrue(_recorder->callbackOutputEnabledIntent());
485+
XCTAssertFalse(_recorder->callbackOutputConfigured());
486+
XCTAssertFalse(_recorder->usesCallback());
487+
}
488+
489+
- (void)testConnectWhileIdleTracksIntentWithoutLiveConnection
490+
{
491+
auto context =
492+
std::make_shared<OfflineAudioContext>(2, 512, 44100.0f, nullptr, RuntimeRegistry{});
493+
context->initialize();
494+
auto adapter = context->createRecorderAdapter();
495+
496+
_recorder->connect(adapter);
497+
498+
XCTAssertTrue(_recorder->connectionEnabledIntent());
499+
XCTAssertFalse(_recorder->connectionConfigured());
500+
XCTAssertFalse(_recorder->isConnected());
501+
}
502+
436503
- (void)testStartDoesNotAttemptToManageSessionWhenOwnershipIsExternal
437504
{
438505
self.sessionManager.shouldManageSession = NO;
@@ -491,6 +558,38 @@ - (void)testStopSucceedsAfterStartAndResetsState
491558
XCTAssertEqual(std::get<2>(stopResult.unwrap()), 0);
492559
}
493560

561+
- (void)testStopClearsConfiguredStateButPreservesConfiguredIntent
562+
{
563+
self.audioEngine.state = AudioEngineStateRunning;
564+
auto context =
565+
std::make_shared<OfflineAudioContext>(2, 512, 44100.0f, nullptr, RuntimeRegistry{});
566+
context->initialize();
567+
auto adapter = context->createRecorderAdapter();
568+
569+
XCTAssertTrue(_recorder->enableFileOutput([self validFileProperties]).is_ok());
570+
XCTAssertTrue(_recorder->setOnAudioReadyCallback(48000, 256, 1, 99).is_ok());
571+
_recorder->connect(adapter);
572+
573+
auto startResult = _recorder->start("");
574+
XCTAssertTrue(startResult.is_ok());
575+
XCTAssertTrue(_recorder->fileOutputConfigured());
576+
XCTAssertTrue(_recorder->callbackOutputConfigured());
577+
XCTAssertTrue(_recorder->connectionConfigured());
578+
579+
auto stopResult = _recorder->stop();
580+
581+
XCTAssertTrue(stopResult.is_ok());
582+
XCTAssertTrue(_recorder->fileOutputEnabledIntent());
583+
XCTAssertFalse(_recorder->fileOutputConfigured());
584+
XCTAssertFalse(_recorder->usesFileOutput());
585+
XCTAssertTrue(_recorder->callbackOutputEnabledIntent());
586+
XCTAssertFalse(_recorder->callbackOutputConfigured());
587+
XCTAssertFalse(_recorder->usesCallback());
588+
XCTAssertTrue(_recorder->connectionEnabledIntent());
589+
XCTAssertFalse(_recorder->connectionConfigured());
590+
XCTAssertFalse(_recorder->isConnected());
591+
}
592+
494593
- (void)testFileOutputSmokeTest
495594
{
496595
self.audioEngine.state = AudioEngineStateRunning;

0 commit comments

Comments
 (0)